2017-10-26 7 views
1

インターネットからjsonデータを取得してlistViewに表示するListFragmentがあります。このフラグメントをviewPagerで再利用します。最初の2ページでは、しかし、3番目のページに読み込みを維持します。ほとんどのページが動作しますが、間にいくつかのページが動作しません。私は理解していない私はすべてのページで同じフラグメントを使用していますが、 newInstanceを作成し、urlを渡してデータを取得します。より多くのコードを提供すると、視聴者は圧倒されますので、これで十分でしょう。ListFragments.Amのリストを取得して表示する際に、 ?viewPager内のListFragmentは一部のページにデータを表示せず、一部のページでうまく機能します

マイアダプタ:

public class FragmentPageAdapter extends FragmentPagerAdapter { 

    public FragmentPageAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     switch (position) 
     { 
      case 0: 
       Log.d("Adapter","Case 0 called"); 
       return new LisViewFragment2(); 

      case 1: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=al-jazeera-english&sortBy=top&apiKey=my_key"); 

      case 2: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=associated-press&sortBy=top&apiKey=my_key"); 

      case 3: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=bbc-news&sortBy=top&apiKey=my_key"); 

      case 4: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=cnn&sortBy=top&apiKey=my_key"); 

      case 5: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=google-news&sortBy=top&apiKey=my_key"); 

      case 6: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=independent&sortBy=top&apiKey=my_key"); 

      case 7: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=metro&sortBy=top&apiKey=my_key"); 

      case 8: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=mirror&sortBy=top&apiKey=my_key"); 

      case 9: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=newsweek&sortBy=top&apiKey=my_key"); 

      case 10: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=new-york-magazine&sortBy=top&apiKey=my_key"); 

      case 11: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=reddit-r-all&sortBy=top&apiKey=my_key"); 

      case 12: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=reuters&sortBy=top&apiKey=my_key"); 

      case 13: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=the-guardian-uk&sortBy=top&apiKey=my_key"); 

      case 14: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=the-hindu&sortBy=top&apiKey=my_key"); 

      case 15: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=the-times-of-india&sortBy=top&apiKey=my_key"); 

      case 16: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=the-new-york-times&sortBy=top&apiKey=my_key"); 

      case 17: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=the-telegraph&sortBy=top&apiKey=my_key"); 

      default: 
       return ListViewFragment.newInstance("https://newsapi.org/v1/articles?source=usa-today&sortBy=top&apiKey=my_key"); 


     } 

    } 

    @Override 
    public int getCount() { 
     return 19; 
    } 


} 
+0

を返す代わりにFragmentPagerAdapter' 'のFragmentStatePagerAdapter''使用してコードを試してみてください –

答えて

0

オーバーライドgetItemPositionとPOSITION_NONE

@Override 
public int getItemPosition(Object object) { 
    return POSITION_NONE; 
} 
関連する問題