android上的ArrayAdpater非法状态异常
我在android上的ArrayAdpater非法状态异常,android,listview,android-arrayadapter,Android,Listview,Android Arrayadapter,我在列表视图中使用了一个arrayAdpater,但是我遇到了这个异常,我不明白为什么,我在初始化arrayAdpater时插入了layout.xml的id和列表视图的id,但我想不出解决这个问题的办法 create\u boundary\u map.xml(定义listView的文件) 提前感谢。适配器采用文本视图而不是列表视图的布局 创建一个新的xml,如list\u item.xml: <TextView xmlns:android="http://schemas.android.c
列表视图
中使用了一个arrayAdpater,但是我遇到了这个异常,我不明白为什么,我在初始化arrayAdpater
时插入了layout.xml的id和列表视图的id,但我想不出解决这个问题的办法
create\u boundary\u map.xml
(定义listView的文件)
提前感谢。适配器采用文本视图而不是列表视图的布局
创建一个新的xml,如list\u item.xml:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/item"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
然后在活动的onCreate中使用您拥有的布局(create_boundary_map.xml):
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.create_boundary_map);
//使用适配器填充您的列表:
ListView ListView=(ListView)findViewById(R.id.list\u视图);
ArrayAdapter ArrayAdapter=新的ArrayAdapter(this,R.layout.list_项,R.id.item,this.fooStrings());
setAdapter(arrayAdapter);
}
这是创建适配器的正确方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.create_boundary_map.xml);
//create_boundary_map.xml must contain list_view.
ListView myListView = (ListView) findViewById(R.id.list_view);
ArrayAdapter<String> adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, this.fooStrings());
myListView.setAdapter(adapter);
...
...
...
}
使用row\u layout.xml
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.create_boundary_map.xml);
//create_boundary_map.xml must contain list_view.
ListView myListView = (ListView) findViewById(R.id.list_view);
ArrayAdapter<String> adapter = new ArrayAdapter(this, android.R.layout.row_layout, R.id.myTextView, this.fooStrings());
myListView.setAdapter(adapter);
...
...
...
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.create_boundary_map.xml);
//create_boundary_map.xml必须包含列表视图。
ListView myListView=(ListView)findViewById(R.id.list\u视图);
ArrayAdapter=newArrayAdapter(this,android.R.layout.row_layout,R.id.myTextView,this.fooStrings());
myListView.setAdapter(适配器);
...
...
...
}
在这里可以看到我在一个类似问题中的答案:你能发布你的ArrayAdapter
代码吗?我如何与我现有的xml集成?
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/item"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.create_boundary_map);
// Use the adapter to populate your list:
ListView listView = (ListView) findViewById(R.id.list_view);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.item, this.fooStrings());
listView.setAdapter(arrayAdapter);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.create_boundary_map.xml);
//create_boundary_map.xml must contain list_view.
ListView myListView = (ListView) findViewById(R.id.list_view);
ArrayAdapter<String> adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, this.fooStrings());
myListView.setAdapter(adapter);
...
...
...
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/myTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.create_boundary_map.xml);
//create_boundary_map.xml must contain list_view.
ListView myListView = (ListView) findViewById(R.id.list_view);
ArrayAdapter<String> adapter = new ArrayAdapter(this, android.R.layout.row_layout, R.id.myTextView, this.fooStrings());
myListView.setAdapter(adapter);
...
...
...
}