안드로이드 개발 질문/답변
(글 수 45,052)
public class JayBitOption extends ListActivity {
ArrayList<String> SoundList;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.option);
ArrayAdapter<CharSequence> Adapter;
Adapter = ArrayAdapter.createFromResource(this, R.array.country, android.R.layout.simple_list_item_1);
ListView list = (ListView)findViewById(R.id.list);
list.setAdapter(Adapter); }
public void onListItemClick(ListView list, View vie, int position, long id) {
String mes;
mes = "Select Item = " + SoundList.get(position);
Toast.makeText(JayBitOption.this, mes, Toast.LENGTH_SHORT).show();
}
}
그냥 Activity 말고 ListActivity 를 사용하여, 클릭을 판단하는걸 구현하고 있습니다.
첫번재 라인에 그냥 Activity를 extends 했다면 정상 코드 이지만
저는 클릭판단 유무를 하기 위해 ListActivity 를 상속받았기 때문에
레이아웃뿌리고 뿌리고~ 하느라, 에러가 납니다.
코드로 리스트를 뿌리면 되겠지만, 개인적으로 왠지 모르게 XML로 처리하고 싶습니다.
책에는 ListActivity 를 extends 하고, 레이아웃을 가져다 쓰려면
레이아웃 XML에 @android:id/list 가 반드시 있어야 된다고 하길래
역시 이렇게 넣었습니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#000000" > <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
아니면, XML 부분이 아니라, 어댑터 부분에서 잘못된걸까요?




2. 리스트뷰에 설정하신 id가 잘못되었습니다. @+id/list가 아니라 @android:id/list라고 있는 그대로 적어주셔야 합니다.