我正在尝试在我的应用程序中使用 viewpager。
我想用列表视图创建 4 个视图页面,每个列表视图只有数据会改变。当应用程序启动时,每个页面都会加载自己的数据,但第一次只会显示第一个。
但我不能这样做。我的片段在每个页面更改时刷新自己的数据,所有列表视图总是有相同的数据。请帮助我解决这个问题。我在 stackoverflow 上问过这个问题,但没有人回答。如果有关于那个的来源你能把它的链接发过来吗?
我正在尝试在我的应用程序中使用 viewpager。
我想用列表视图创建 4 个视图页面,每个列表视图只有数据会改变。当应用程序启动时,每个页面都会加载自己的数据,但第一次只会显示第一个。
但我不能这样做。我的片段在每个页面更改时刷新自己的数据,所有列表视图总是有相同的数据。请帮助我解决这个问题。我在 stackoverflow 上问过这个问题,但没有人回答。如果有关于那个的来源你能把它的链接发过来吗?
这是 ViewPager 的一种实现,它具有不同的 ListView 作为页面。
MainActivity.java
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private Context mContext;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
setContentView(R.layout.main);
ListView listview1 = new ListView(mContext);
ListView listview2 = new ListView(mContext);
ListView listview3 = new ListView(mContext);
Vector<View> pages = new Vector<View>();
pages.add(listview1);
pages.add(listview2);
pages.add(listview3);
ViewPager vp = (ViewPager) findViewById(R.id.viewpager);
CustomPagerAdapter adapter = new CustomPagerAdapter(mContext,pages);
vp.setAdapter(adapter);
listview1.setAdapter(new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1,new String[]{"A1","B1","C1","D1"}));
listview2.setAdapter(new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1,new String[]{"A2","B2","C2","D2"}));
listview3.setAdapter(new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1,new String[]{"A3","B3","C3","D3"}));
}
}
CustomPagerAdapter.java
public class CustomPagerAdapter extends PagerAdapter {
private Context mContext;
private Vector<View> pages;
public CustomPagerAdapter(Context context, Vector<View> pages) {
this.mContext=context;
this.pages=pages;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View page = pages.get(position);
container.addView(page);
return page;
}
@Override
public int getCount() {
return pages.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
更多信息在这里。
看看这个项目https://github.com/Shereef/ViewPagerPlusExpandableList(在 eclipse indigo 中导入,或者在线查看代码),这是我对我的问题的回答:How to implement an ExpandableList in a ViewPager在安卓?
如果它不能完全解决它,应该对您的问题非常有帮助。