ListActivity를 상속하는 액티비티를 작성할 경우 ListView의 어댑터를 설정할 때 ListView를 참조하는 객체를 만들지
않아도어댑터를 지정할 수 있지만 ListView의 id를 필히@android:id/list 로
설정하여야 한다.
그렇지 않으면 아래와 같은 런타임 오류가 발생한다.
상속받은 클래스 종류 |
Activity |
ListActivity |
.xml 에서 ListView 태그의 ID 값 |
@+id/~~~ |
@android:id/list |
자바파일에서 어댑터 연결 메소드 |
setAdapter() |
setListAdapter() |
ListView 에 표시된 항목을 클릭했을 때 어떤 동작을 구현하고자 할 경우
ListActivity 내의
onListItemClick() 메소드를 오버라이드한 후 구현한다.
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
public class AdapterTest2 extends ListActivity {
TextView
textView;
String[] items = {"SUN", "MON", "TUE",
"THU","FRI","SAT"};
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//ListActivity 로부터 상속을 받으면
ListAdapter 사용이 가능하다.
this.setListAdapter(new
ArrayAdapter<String>
(this,android.R.layout.simple_list_item_1, items) //'itmes 라는 배열을
simpe_list_item_1에 맞춤뜻
);
textView = (TextView)findViewById(R.id.textView);
}
@Override
/*
* ==== parameter 설명
====
* ListView l: 객체명
* View v : 선택한 항목
* int position
: 선택한 놈의 위치(0부터 시작)
* long id : 선택한 항목의 id값
*/
protected
void onListItemClick(ListView l, View v, int position, long id)
{
textView.setText(items[position]);
}
[펌] http://blog.naver.com/astrolena?Redirect=Log&logNo=70105990330
'개발도구 > aOS - 안드로이드 개발' 카테고리의 다른 글
[Android] addHeaderView -ListActivity with a header or footer (0) | 2011.05.20 |
---|---|
[안드로이드] Gallery View (0) | 2011.05.19 |
intent.setFlags (0) | 2011.05.19 |
[안드로이드] activitygroup sample (0) | 2011.05.18 |
[안드로이드] TabHost (0) | 2011.05.18 |