我有一個編輯文本字段和一個「搜索」按鈕。當我點擊搜索時,我必須顯示一個列表視圖,其中的數據與edittext中輸入的值相對應。我使用addHeader()將頭添加到了我的列表中。當我第一次搜索時,我能夠成功地在列表中顯示數據。但是當我再次搜索時,我得到了下面的錯誤。無法添加標題視圖列表 - setAdapter已被稱爲
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)
我已經設置適配器之前分配頭到我的清單。
下面是我的代碼:
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);
我哪裏做錯了嗎?
嘗試使用dataAdapter.notifyDataSetChanged();設置好適配器後。 –
您是否檢查了此項[由Hiren Patel提供的答案] [1]。它會幫助你。 [1]:http://stackoverflow.com/questions/13217386/add-a-header-to-a-gridview-android/27290310#27290310 –
之前4.4,適配器必須調用addHeaderView之前設置方法。你可以查看4.4和4.3源代碼的區別:http://grepcode.com/file_/repository.grepcode.com/java/ext/com.google.android/android/4.4_r1/android/widget/ListView.java /?v=diff&id2=4.3.1_r1 –