我在列表中设置自定义标题时遇到了一些麻烦.
我正在使用自定义适配器创建ListFragment.我的列表工作正常,但我正在试图找出片段的生命周期中附加标题的位置.
我知道在设置适配器之前必须添加标头.
我尝试在onActivityCreated中添加我的标题,但是每次我的Fragment从backstack返回时都会调用它,并且因为我还在onActivityCreated中设置了我的适配器,所以它失败了.
我尝试在onCreate中添加它,但视图层次结构在生命周期的那个阶段不可用.
我尝试在onCreateView中添加它,但我无法将从inflate返回的视图转换为ListView.所以我无法将标题添加到香草视图中.
有什么想法吗?
我有一个edittext字段和一个"搜索"按钮.当我点击搜索时,我必须显示一个列表视图,其中包含与edittext中输入的值相对应的数据.我使用addHeader()在列表中添加了一个标题.当我第一次搜索时,我能够成功地在List中显示数据.但是当我再次搜索时,我收到以下错误.
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)
Run Code Online (Sandbox Code Playgroud)
在设置适配器之前,我已将标题分配给我的列表.
以下是我的代码:
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);
Run Code Online (Sandbox Code Playgroud)
我在哪里做错了?