EDIT: Я понял это, благодаряFragmentPagerAdapter с ArrayListFragment
Я пытался навсегда теперь реализовать отдельные ListViews в каждой из страниц моего ViewPager в. Я хорошо понимаю this tutorial, но он создает только один ListView, который используется для каждой страницы.
Я хотел бы иметь несколько списков ListView на каждой странице, из которых я могу контролировать, что происходит onClick для ListView каждой страницы. У меня есть приложение, работающее с одним ListView (как в учебнике), но я плохо борюсь с несколькими.
Мой код опубликован ниже, и я попробовал массу разных вещей, и мне просто нужно двигаться дальше в своем развитии. Спасибо за помощь
private static class MyAdapter extends FragmentPagerAdapter implements
TitleProvider {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return ArrayListFragment.newInstance(position);
}
@Override
public int getCount() {
return Arrays.TITLES.length;
}
public String getTitle(int position) {
return Arrays.TITLES[position];
}
}
public static class ArrayListFragment extends ListFragment {
int mNum;
/**
* 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;
}
/**
* When creating, retrieve this instance's number from its arguments.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mNum = getArguments() != null ? getArguments().getInt("num") : 1;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.list_layout, container, false);
return v;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, Arrays.accTEAMS));
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Log.i("FragmentList", "Item clicked: " + id);
}
}
Это один из моих ListFragments:
public class ACCfragment extends ListFragment {
View v;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.list_layout, null);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, Arrays.accTEAMS);
setListAdapter(adapter);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
}
Не могли бы вы рассказать нам, что версия API вы используете, и которые поддерживают пакеты, которые вы используете (если таковые имеются) ? Правила для FragmentPagerAdapter могут варьироваться в зависимости от этих версий. – losttime
Вы хотите поделиться своим мнением? –