我有一个现有的应用程序显示来自数据库的五个不同的条目列表。它使用左侧抽屉来选择显示哪个列表。使用ViewPager与ListFragment和CursorAdapter
我想使用ViewPager来查看这些列表,但是很难弄清楚它是如何工作的。不幸的是,我找不到解决这个问题的教程。
我有我连接viewpagerAdapter
MainActivity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// Setting the viewpager
mPager = (ViewPager) findViewById(R.id.pager_container_home);
mPagerAdapter = new EntriesListPagerAdapter(getSupportFragmentManager());
mPager.setAdapter(mPagerAdapter);
...
}
private class EntriesListPagerAdapter extends FragmentPagerAdapter {
...
@Override
public Object instantiateItem(ViewGroup container, int position) {
// What to put here???
return view;
}
}
我有一个ListFragment类从ResourceCursorAdapter(称为EntriesCursorAdapter)获取其数据的MainActivity。这是一个长课,所以我给一些部分给你一个想法。
public class EntriesListFragment extends ListFragment {
...
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
...
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
mEntriesCursorAdapter.swapCursor(data);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
mEntriesCursorAdapter.swapCursor(Constants.EMPTY_CURSOR);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
mUri = savedInstanceState.getParcelable(STATE_URI);
mShowFeedInfo = savedInstanceState.getBoolean(STATE_SHOW_FEED_INFO);
mListDisplayDate = savedInstanceState.getLong(STATE_LIST_DISPLAY_DATE);
mEntriesCursorAdapter = new EntriesCursorAdapter(getActivity(), mUri, Constants.EMPTY_CURSOR, mShowFeedInfo);
}
}
@Override
public View inflateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_entry_list, container, true);
if (mEntriesCursorAdapter != null) {
setListAdapter(mEntriesCursorAdapter);
}
mListView = (ListView) rootView.findViewById(android.R.id.list);
...
}
public void setData(Uri uri, boolean showFeedInfo) {
mUri = uri;
mShowFeedInfo = showFeedInfo;
mEntriesCursorAdapter = new EntriesCursorAdapter(getActivity(), mUri, Constants.EMPTY_CURSOR, mShowFeedInfo);
}
你能帮助我如何创建listfragment(用的CursorAdapter)的五个实例,并将其连接到ViewPager在MainActivity?任何暗示如何继续是值得欢迎的。
更新:我注意到FragmentPagerAdapter来自support.v4库。如果我要使用它,它看起来像我也必须使用support.v4中的ListFragment,包括LoaderManager。不幸的是,LoaderManager不容易升级到support.v4。任何想法都欢迎。