hello there,
I ve two ListFragments maganed by a tabhost. Firt time I switch
between tab all is alright. The headerView is correctly added. The
second time I switch between fragment I get this execption:
10-05 15:15:01.585: ERROR/AndroidRuntime(23263):
java.lang.IllegalStateException: Cannot add header view to list --
setAdapter has already been called. 10-05 15:15:01.585: ERROR/
AndroidRuntime(23263): at
android.widget.ListView.addHeaderView(ListView.java:261) 10-05
15:15:01.585: ERROR/AndroidRuntime(23263): at
android.widget.ListView.addHeaderView(ListView.java:284) 10-05
15:15:01.585: ERROR/AndroidRuntime(23263): at
it.mypackage.archive.ArchiveFragment.onActivityCreated(ArchiveFragment.java:
199) 10-05 15:15:01.585: ERROR/AndroidRuntime(23263): at
android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:
858) 10-05 15:15:01.585: ERROR/AndroidRuntime(23263): at
android.support.v4.app.FragmentManagerImpl.attachFragment(FragmentManager.java:
1183)
and the app crashes. The code I use to add the header view follows:
@Override
public void onActivityCreated(Bundle arg0) {
super.onActivityCreated(arg0);
getListView().setOnScrollListener(this);
getListView().addHeaderView(searchBox);
setListAdapter(mAdapter);
}
I manage to fix (??) setting the list adapter to null befor adding the
header view but it does not seems a good thing to me.
@Override
public void onActivityCreated(Bundle arg0) {
super.onActivityCreated(arg0);
setListAdapter(null);
getListView().setOnScrollListener(this);
getListView().addHeaderView(searchBox);
setListAdapter(mAdapter);
}
Adding footer instead I have the following crash:
10-09 18:45:13.866: ERROR/AndroidRuntime(18191):
java.lang.NullPointerException
10-09 18:45:13.866: ERROR/AndroidRuntime(18191): at
android.widget.AdapterView
$AdapterDataSetObserver.onChanged(AdapterView.java:778)
10-09 18:45:13.866: ERROR/AndroidRuntime(18191): at
android.widget.ListView.addFooterView(ListView.java:346)
10-09 18:45:13.866: ERROR/AndroidRuntime(18191): at
android.widget.ListView.addFooterView(ListView.java:361)
10-09 18:45:13.866: ERROR/AndroidRuntime(18191): at
it.mypackage.category.CategorySearchFragment.onActivityCreated(CategorySearchFragment.java:
131)
10-09 18:45:13.866: ERROR/AndroidRuntime(18191): at
android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:
858)
10-09 18:45:13.866: ERROR/AndroidRuntime(18191): at
android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:
1041)
10-09 18:45:13.866: ERROR/AndroidRuntime(18191): at
android.support.v4.app.BackStackRecord.popFromBackStack(BackStackRecord.java:
687)
10-09 18:45:13.866: ERROR/AndroidRuntime(18191): at
android.support.v4.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:
1392)
10-09 18:45:13.866: ERROR/AndroidRuntime(18191): at
android.support.v4.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:
438)
10-09 18:45:13.866: ERROR/AndroidRuntime(18191): at
android.support.v4.app.FragmentActivity.onBackPressed(FragmentActivity.java:
156)
in order to add the footer I run the following snippet
@Override
public void onActivityCreated(Bundle arg0) {
super.onActivityCreated(arg0);
setListAdapter(null);
getListView().setOnScrollListener(this);
getListView().addHeaderView(searchBox);
if (footer != null) {
getListView().addFooterView(footer);
}
setListAdapter(mAdapter);
}
What am I doing wrong?
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en