不能头视图添加到列表 - setAdapter已经被称为被称为、视图、列表、setAdapter

2023-09-12 22:56:30 作者:惬意的味觉

我有一个外地的EditText和一个搜索按钮。当我点击搜索,我要显示一个列表视图与对应于EditText上输入的值数据。我已经使用和addHeader添加了一个标题到我的清单()。当我做搜索第一次,我能够在列表成功地显示数据。但是,当我再次搜索,我得到下面的错误。

I have one edittext field and one "search" button. When I click on search, I have to display a list view with data corresponding to the values entered in the edittext. I have added a header to my list using addHeader(). When I do search first time, I am able to display data in List successfully. But when I do search again, I am getting the below error.

FATAL EXCEPTION: main
java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called.
at android.widget.ListView.addHeaderView(ListView.java:261)
at android.widget.ListView.addHeaderView(ListView.java:284)

我已经分配的头进入我的列表设置适配器之前。

I have assigned header to my list before setting the adapter.

下面是我的code:

myList = (ListView) findViewById(R.id.searchResultsList);
View header = View.inflate(this, R.layout.search_results_header, null);
myList.addHeaderView(header, null, false);

dataAdapter = new MyCustomAdapter(this, R.layout.results_list_item, searchedResults);
myList.setAdapter(dataAdapter);

我哪里做错了吗?

Where I am doing wrong?

推荐答案

在Android 2.3,setAdapter后添加页眉(即使你有早期添加,然后删除)将抛出一个异常。要隐藏或动态显示的标题,使用setVisibility()。怎么样?你可以看到隐藏标题景观。

On android 2.3, add header after setAdapter (even if you have added early, then removed) will throw an exception. To hide or show a header dynamically, use setVisibility(). How? You can see Hiding header views.