我在Android中遇到了Listview的问题。 然后我尝试将适配器设置为listview,我得到了Resource Not Found Exception。
我的代码:
public class MyActivity extends Activity {
ArrayList<String> list;
public void onCreate(Bundle savedInstanceState) {
list = new ArrayList<String>();
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list.add("first");
listView = (ListView)findViewById(R.id.CheckpointList);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.id.CheckpointList, list);
listView.setAdapter(adapter);
}
}
在我的main.xml中我得到了:
<ListView android:id="@+id/CheckpointList" android:layout_height="wrap_content" android:layout_width="fill_parent"></ListView>
我试图清理和改造项目 - 没有效果......
如何解决这个问题?
干杯。
答案 0 :(得分:11)
您交给ArrayAdapter的资源不应该是ListView的id。它应该是textViewResourceId
- 基本上是你希望列表中的项目呈现为TextView-layout-id的那个。
其中一个标准是android.R.layout.simple_list_item_1
。
以下是一个简单的ListView示例:
public class ListviewExample extends Activity
{
private ListView listView;
private String listView_data[] = {"Android","iPhone","BlackBerry","AndroidPeople"};
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.main);
listView = (ListView) findViewById(R.id.ListView1);
// By using setAdapter method in listview we add the string array to the ListView.
listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1 , listView_data));
}
}
答案 1 :(得分:3)
您移交给ArrayAdapter的资源不应该是listview的id。它应该是listview中textview的布局资源。查看文档:{{3}}