2011-12-05 2 views
1

데이터를 바인딩하려고하는데 안드로이드에서 listview를 할 수 있지만 할 수 없습니다.Android ListView setAdapter 문제

인터넷에서 일부 코드를 보았지만 제대로 작동하지 않았습니다.하지만 왜 그런지 모르겠지만 새 ListView를 바로 만들고 싶지는 않습니다. 목록에있는 목록을 사용하고 싶습니다. main.xml에

나는이 할 수있는 이유 :

ListView lv = new ListView(this); 
     lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,PEOPLE)); 
     setContentView(lv); 

을하지만이 작업을 수행 할 수 없습니다

당신이 쓴 무엇
ListView listPessoas = (ListView) findViewById(R.id.listPessoas); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.id.listPessoas, PESSOAS); 
     listPessoas.setAdapter(adapter); 
+0

왜? 무슨 일이야? – kabuko

답변

0

가 정확하지, 배열 어댑터의 두 번째 매개 변수를 생성자는 목록보기가 아닌 각 목록 항목에 대한 간단한 레이아웃.

사용자의 목록 항목에 대한 사용자 정의 복잡한 레이아웃이있는 경우 사용자 지정 어댑터도 작성해야합니다.

2

여기에 새로운 ArrayAdapter을 작성할 때의 오류입니다. 각 행에 사용할 행보기로 R.id.listPessoas을 전달 중입니다. 이것은 ListView의 ID입니다. adapter은 목록의 각 행에 사용할 텍스트보기가 포함 된 레이아웃 ID를 찾고 있습니다. R.id.listPessoasandroid.R.layout.simple_list_item_1으로 변경하면 코드가 작동합니다. simple_list_item_1 레이아웃은 데이터가 바인딩 될 TextView입니다.

1

R.id.pessoas은 무엇입니까 ?? 이것은 나를 위해 잘 작동

:

String[] x = new String[]{"AAA","BBB","CCC"}; 
ListView lv = (ListView) findViewById(R.id.listView1); 
ArrayAdapter<String> test = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,x); 
lv.setAdapter(test);