2017-10-26 8 views
1

인터넷에서 json 데이터를 가져와 listView에 표시하는 ListFragment가 있습니다.이 fragment를 viewPager에서 재사용합니다. 데이터 및 표시를로드합니다. 처음 두 페이지에 있지만 세 번째 페이지에서로드 유지합니다. 대부분의 페이지가 작동하지만 중간에 작동하지 않는 페이지가 있습니다. 이해가 안되는 것은 모든 페이지에서 동일한 조각을 사용하지만 일부 페이지에서는 작동하지 않는다는 것입니다. newInstance를 만들고 URL을 전달하여 데이터를 가져옵니다. 더 많은 코드를 제공하면 시청자가 압도 당해서 충분합니다. ListFragments.Am에서 목록을 가져 와서 표시하는 동안 내가 따라야하는 규칙이 있습니다. 잘못된 것입니다. ?ListPager 내부의 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

'FragmentStatePagerAdapter'를 사용하는 대신'의 FragmentPagerAdapter'하여 코드를 시도 –

답변

0

재정 getItemPosition 반환 POSITION_NONE이

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