Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android FragmentStatePagerAdapter复制片段';s游标加载程序结果_Android_Android Viewpager_Android Cursorloader_Fragmentstatepageradapter - Fatal编程技术网

Android FragmentStatePagerAdapter复制片段';s游标加载程序结果

Android FragmentStatePagerAdapter复制片段';s游标加载程序结果,android,android-viewpager,android-cursorloader,fragmentstatepageradapter,Android,Android Viewpager,Android Cursorloader,Fragmentstatepageradapter,我正在制作一个简单的新闻应用程序 它的主要活动包含一个带有TabLayout的视图寻呼机,可承载新闻类别的不同片段 前两类是商业(第一类)体育(第二类) 问题是这两个片段的内容是相同的,即使使用了不同的加载程序,即“业务”选项卡显示体育新闻 但是当你刷第三个碎片时,问题就解决了。(可能是因为ViewPager重新加载了第一个片段。) 该片段实现了游标加载程序回调 公共类ArticleListFragment扩展了片段实现 LoaderManager.LoaderCallbacks 在Fragme

我正在制作一个简单的新闻应用程序

它的主要活动包含一个带有TabLayout的视图寻呼机,可承载新闻类别的不同片段

前两类是商业(第一类)体育(第二类)

问题是这两个片段的内容是相同的,即使使用了不同的加载程序,即“业务”选项卡显示体育新闻

但是当你刷第三个碎片时,问题就解决了。(可能是因为ViewPager重新加载了第一个片段。)

该片段实现了游标加载程序回调

公共类ArticleListFragment扩展了片段实现
LoaderManager.LoaderCallbacks

在Fragment的
#onCreate
中,我调用加载程序:

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
Bundle bundle = getArguments();
loader_id = bundle.getInt("id");
category = bundle.getString("category");
getLoaderManager().initLoader(loader_id, null, this);
}
Fragment的加载程序回调如下所示:

@Override
public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
    if(cursorLoader.getId() == loader_id){
        if(cursor != null && cursor.getCount() > 0)  {
            Log.i("haha","id: " + cursorLoader.getId());
            adapter.swapCursor(cursor);
        }
    }
}

@Override
public void onLoaderReset(Loader<Cursor> loader) {
    adapter.swapCursor(null);
}
@Override
    public Fragment getItem(int position) {
        ArticleListFragment fragment = ArticleListFragment.newInstance();
        Bundle bundle = new Bundle();
        bundle.putString("category", categories.get(position));
        bundle.putInt("id",position);
        fragment.setArguments(bundle);
        return fragment;
    }