2017-10-26 3 views
1

Ich habe ein ListFragment, das JSON-Daten aus dem Internet holt und in einem listView anzeigt. Und ich verwende dieses Fragment in einem viewPager.It lädt Daten und zeigt an in den ersten zwei Seiten, aber lädt auf der dritten Seite. Die meisten Seiten funktionieren, aber einige Seiten dazwischen funktioniert nicht. Was ich nicht verstehe ist, dass ich das gleiche Fragment über alle Seiten, aber nicht auf einigen Seiten funktioniert. Ich benutze das gleiche Fragment indem ich eine neueInstanz erzeuge und die URL übergebe, um Daten von zu holen.Wenn ich mehr Code zur Verfügung stelle, werden die Zuschauer überwältigt, also denke ich, dass das genug ist.Es gibt irgendwelche Regeln, denen ich folgen sollte, während ich ListFragments lade und zeige ?ListFragment innerhalb von viewPager zeigt keine Daten auf einigen Seiten an und funktioniert gut auf einigen Seiten

Mein Adapter:

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

Code versuchen, mithilfe von 'FragmentStatePagerAdapter' statt' FragmentPagerAdapter' –

Antwort

0

Überschreibung getItemPosition und Rück POSITION_NONE

@Override 
public int getItemPosition(Object object) { 
    return POSITION_NONE; 
} 
Verwandte Themen