您好我正在使用制表符开发应用程序,我使用相同的片段(新闻片段.java)在选项卡选择时从不同的URL获取信息到列表视图但我运行我的应用程序时遇到问题然后它正常工作但是在选项卡位置选择时,它们有时会在列表视图中显示不同的Tab(URL)信息,就像第一次运行时我的应用程序将案例1信息显示到listview而不是案例0,并且直接选择最后一个选项卡案例5,它将案例4信息显示到列表显示。我在这里缺少什么
MainActivity.java
ViewPager viewPager = null;
TabLayout tabLayout;
static String url;
private static final String Topics[] = {"Pakistan", "World", "Sports", "Business", "Entertainment", "Health"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
viewPager = (ViewPager) findViewById(R.id.viewpager);
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
ViewpagerAadapters adapter = new ViewpagerAadapters(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
}
private class ViewpagerAadapters extends FragmentStatePagerAdapter {
int tabCount;
private ViewpagerAadapters(FragmentManager fm, int tabCount) {
super(fm);
this.tabCount= tabCount;
}
@Override
public Fragment getItem(int position) {
Log.i("Position", "Posotion: " + position);
switch (position) {
case 0:
url = "https://www.geo.tv/rss/1/1";
return new GeoNews();
case 1:
url = "https://www.geo.tv/rss/1/2";
return new GeoNews();
case 2:
url = "https://www.geo.tv/rss/1/4";
return new GeoNews();
case 3:
url = "https://www.geo.tv/rss/1/3";
return new GeoNews();
case 4:
url = "https://www.geo.tv/rss/1/5";
return new GeoNews();
case 5:
url = "https://www.geo.tv/rss/1/6";
return new GeoNews();
default:
return null;
}
}
@Override
public int getCount() {
return Topics.length;
}
@Override
public CharSequence getPageTitle(int position) {
return Topics[position];
}
}
}
新闻片段Listview.Java
ListView listView;
int positions;
ArrayList<NewsItem> newsItemList;
NewsAdapter adapter;
String World ;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.geonews, container, false);
listView = (ListView) view.findViewById(R.id.listview_news);
if (savedInstanceState == null){
}
else{
positions = savedInstanceState.getInt("position",0);
}
World = MainActivity.url;
newsItemList = new ArrayList<>();