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