2011-12-05 8 views
1

私はアンドロイドでデータをバインドしようとしていますが、できません。Android ListView setAdapter issue

私はインターネット上でいくつかのコードを見ましたが、うまくいきませんでしたが、私はその理由を知りませんし、新しい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番目のパラメータが正しくないですコンストラクタはあなたのリストビューではなく、各リストアイテムの単純なレイアウト。

あなたのリストアイテムにカスタムの複雑なレイアウトがある場合は、カスタムアダプターも作成する必要があります。

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);