Я пытаюсь справиться с изменениями ориентации в моем приложении для Android. Я столкнулся с проблемой при попытке установить адаптер для моего ListFragment после изменения ориентации. Нет никаких исключений, но список остается пустым; он не заполнен данными данными.
Мне известно, что при смене ориентации вся деятельность воссоздается. Я также реализовал способ передачи данных из старой ориентации в новую. Я проверил, что непосредственно перед вызовом ListFragment.setAdapter () ArrayList данных не является пустым и содержит точно те же данные, что и раньше. Я также уверен, что в моем классе адаптера нет недостатков, так как он впервые заполняет список отлично.
Кроме того, я нацеливаюсь на устройства ниже 3.0, поэтому я использую android.support.v4.app.ListFragment
для реализации моего ListFragment.
Вот мой метод onCreate ():
private ListFragment fragmentA;
private ListFragment fragmentB;
@Override
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
setContentView(R.layout.my_activity);
ActionBar bar = getSupportActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tabA = bar.newTab().setText("TabA");
ActionBar.Tab tabB = bar.newTab().setText("TabB");
fragmentA = new MyListFragment();
fragmentB = new MyListFragment();
Object retained = getLastCustomNonConfigurationInstance();
if (retained instanceof MyAsyncTask) {
ResultWrapper result = ((MyAsyncTask) retained).getResult();
Log.d("MyActivity", "retained is instance of MyAsyncTask");
if (result.nowResult == null) {
Log.d("MyActivity", "null");
} else {
Log.d("MyActivity", "nowResult size" + result.nowResult.size());
fragmentA.setListAdapter(new MyListAdapter(this,
R.layout.my_list_item, result.nowResult));
}
fragmentB.setListAdapter(new MyListAdapter(this,
R.layout.my_list_item, result.myResult));
} else {
fetcher = new MyAsyncTask(this);
fetcher.execute();
}
tabA.setTabListener(new MyTabListener(fragmentA));
tabB.setTabListener(new MyTabListener(fragmentB));
bar.addTab(tabA);
bar.addTab(tabB);
}
Любая помощь будет оценена.