Я работаю с FragmentStatePagerAdapter, используя этот пример.
Класс MyAdapter реализован следующим образом:
public static class MyAdapter extends FragmentStatePagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
return ArrayListFragment.newInstance(position);
}
}
Класс ListFragment включает следующий метод для создания нового экземпляра:
/**
* Create a new instance of CountingFragment, providing "num"
* as an argument.
*/
static ArrayListFragment newInstance(int num) {
ArrayListFragment f = new ArrayListFragment();
// Supply num input as an argument.
Bundle args = new Bundle();
args.putInt("num", num);
f.setArguments(args);
return f;
}
Когда я создаю в своей деятельности новый адаптер пейджера состояния фрагмента, getItem
который, в свою очередь, вызывает метод newInstance
в классе ListFragment. Это здорово, когда я хочу создать новый фрагмент.
Но мне непонятно, как модифицировать getItem
(если вообще нужно) для получения объекта фрагмента когда он уже существуети пользовательских страниц, например, со страницы 2 на страницу 1. Я хочу, чтобы моя активность извлекала этот существующий, ранее созданный фрагмент, чтобы он мог запускать внутренний класс AsyncMethod
, который находится в классе фрагмента.