我尝试绑定数据在android上执行listview,但我无法做到。
我在互联网上看到了一些代码并且它有效,但我不知道为什么,而且我不想动态创建新的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 :(得分:2)
此处的错误是您创建新ArrayAdapter
时的错误。您正在将R.id.listPessoas
作为行视图用于每一行。这是ListView
的ID。 adapter正在查找包含文本视图的布局ID,该文本视图将用于列表的每一行。将R.id.listPessoas
更改为android.R.layout.simple_list_item_1
,您的代码应该有效。 simple_list_item_1
布局只是数据绑定的TextView
。
答案 1 :(得分:2)
什么是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);
答案 2 :(得分:0)
您所写的内容不正确,数组适配器构造函数中的第二个参数应该是每个列表项的简单布局,而不是列表视图。
如果您的列表项具有自定义复杂布局,则还需要编写自定义适配器。
答案 3 :(得分:-1)
如果您收到错误。
getApplicationContext();将会工作,而不是&#39;这个&#39;。