안녕하세요. 스타입니다.
계속해서 안드로이드 기초 강좌가 나가고 있습니다.
요 몇일 째 계속해서 view에 대해서 소스 코드 예제를 올리고 있습니다.
listview는 데이터를 리스트 처럼 나열하고 싶을 때 사용합니다.
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/selection"/>
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
MainActivity.java
package com.example.listview;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends ListActivity {
TextView selection;
ArrayAdapter<String> mAdapter;
private ArrayList<String> mStrings = new ArrayList<String>();
String[]items = {"mike", "angel","crow","john","ginnie", "sally", "cohen", "rice"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for(int i=0;i<items.length;i++)
mStrings.add(items[i]);
mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mStrings);
setListAdapter(mAdapter);
selection = (TextView)findViewById(R.id.selection);
}
protected void onListItemClick(ListView lv, View v, int position, long id)
{
super.onListItemClick(lv, v, position, id);
String text = "position:" + position+", "+items[position];
selection.setText(text);
}
}
실행 결과
다음은 gridview 입니다. 사진을 격자 단위로 출력합니다. 보통 갤러리 용도로 많이 사용합니다.
activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/selection"/>
<GridView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:verticalSpacing="35px"
android:horizontalSpacing="5px"
android:numColumns="auto_fit"
android:columnWidth="100px"
android:stretchMode="columnWidth"
android:gravity="center"/>
</LinearLayout>
MainActivity.java
package com.example.gridview;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.TextView;
public class MainActivity extends Activity {
String items[]={"busan", "ulsan", "seoul", "dfdf", "dfdfd", "daegu", "gyungido", "gwangju", "fdfdfd"};
ArrayAdapter<String> arraryAdapter;
GridView gridView;
TextView textView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView = (GridView)findViewById(R.id.grid);
textView = (TextView)findViewById(R.id.selection);
arraryAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
gridView.setAdapter(arraryAdapter);
gridView.setOnItemClickListener(onClick);
}
AdapterView.OnItemClickListener onClick = new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){
textView.setText(items[arg2]);
}
};
}
다음은 실행 결과
이번에는 명시적 intent에 대해서 알아봅니다.
둘째날 했던 액티비티간 화면 전환과 비슷한 코드입니다.
다만 intent.putextra 를 통해 추가적인 정보를 전달합니다.
activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="this is sub activity"
android:textSize="30sp"
android:textColor="#00ff00"/>
<Button
android:id="@+id/call"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Call"/>
</LinearLayout>
activity_sub.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="this is sub activity"
android:textSize="30sp"
android:textColor="#ff0000"/>
<TextView
android:id="@+id/subTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:textColor="#ff0000"/>
<Button
android:id="@+id/close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="close"/>
</LinearLayout>
두개의 액티비티 레이아웃을 만들고
다음엔 두개의 자바 스크립트를 만듬.
MainActivity.java
아래 내용에서 intent.putExtra 부분을 유심이 보기 바람.
package com.example.intent;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnCall = (Button) findViewById(R.id.call); //버튼을 정의한다.
btnCall.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SubActivity.class);
intent.putExtra("name", "Kim");
intent.putExtra("age", "19");
startActivity(intent);
}
});
}
}
SubActivity.java
아래 intent 부분에서 getExtra 부분을 유심이 보기 바람.
package com.example.intent;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class SubActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
Intent intent = getIntent();
String name = intent.getExtras().get("name").toString();
String age = intent.getExtras().get("age").toString();
TextView tv = (TextView)findViewById(R.id.subTextView);
tv.setText(name + "/" + age);
Button btnCall = (Button) findViewById(R.id.close);
btnCall.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
}
});
}
}
실행결과
이번에는 암묵적 intent 예제입니다.
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="web or call" />
<Button
android:id="@+id/web"
android:text="web"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/dial"
android:text="dial"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
MainActivity.java
package com.example.intentimplicit;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.web).setOnClickListener(clickListener);
findViewById(R.id.dial).setOnClickListener(clickListener);
}
Button.OnClickListener clickListener = new View.OnClickListener(){
public void onClick(View v){
Intent intent;
switch (v.getId()){
case R.id.web:
intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.naver.com"));
startActivity(intent);
break;
case R.id.dial:
intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:010-123-1234"));
startActivity(intent);
break;
}
}
};
}
이번에는 alertdialog 예제입니다. 알림 화면을 보여줄 때 사용합니다.
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/btn0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AlertDialog" />
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ProgressDialog" />
</LinearLayout>
이번엔 자바쪽.
MainActivity.java
package com.example.alertdialog;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button dialogBtn = (Button)findViewById(R.id.btn0);
dialogBtn.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle("alert!");
alertDialog.setNegativeButton("Close", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Log.i("INFO","alert show");
}
});
alertDialog.show();
}
});
Button progBtn = (Button)findViewById(R.id.btn1);
progBtn.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
ProgressDialog dialog = ProgressDialog.show(MainActivity.this, "", "wait plz", true);
}
});
}
}
실행 결과는 다음과 같이 나오네요.
customdialog
'스타의 도서관 > 안드로이드 개발' 카테고리의 다른 글
안드로이드 기초 강좌(fileIO, DBAdapter, notification) - 5/27 (0) | 2013.05.27 |
---|---|
안드로이드 기초 강좌(radio group, check box, 응용 과정) - 5/23 (0) | 2013.05.23 |
안드로이드 기초 강좌(linear layout, frame layout, relative layout, table layout, tab layout, textview, edittext) - 5/22 (0) | 2013.05.22 |
안드로이드 기초 강좌(Activity 전환하기) - 5/21 (3) | 2013.05.22 |
안드로이드 이클립스로 svn 공유받기 (2) | 2013.05.22 |