【发布时间】:2018-12-01 11:47:45
【问题描述】:
我正在使用安卓工作室。我正在尝试使用具有 3 个视图的视图寻呼机。我使用 alistview 的一个片段,但使用不同的适配器(从数据库中获取一些数据)。在页面之间移动将更改适配器,但相同的片段。我这样做是为了避免有 3 个片段,每个片段都有其数据适配器,这可能会使用手机内存(内存优化)。
问题..当页面改变时如何改变适配器。我可以得到 viewpager 页面更改的事件,但是在哪里设置新的适配器 & 真的可以节省内存吗?
viewPager = (ViewPager) findViewById(R.id.viewPager);
viewPager.setAdapter(new usersmanageTabFragmentAdapter(getSupportFragmentManager()));
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
public void onPageScrollStateChanged(int state) {
}
Boolean first = true;
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (first && positionOffset == 0 && positionOffsetPixels == 0) {
onPageSelected(0);
first = false;
}
}
public void onPageSelected(int position) {
InitializeSwipemenu();
// Check if this is the page you want.
Toast.makeText(activity, String.valueOf(position) , Toast.LENGTH_SHORT).show();
// Fragment page = getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.viewPager + ":" + viewPager.getCurrentItem());
// Button b= (Button) page.getView().findViewById(R.id.button3w);
// b.setText("ssssssss");
}
});
private void InitializeSwipemenu() {
Fragment page = getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.viewPager + ":" + viewPager.getCurrentItem());
listView = (ListView) findViewById(R.id.userslistview);
custad = new CustomAdapter(getApplicationContext(), Namet, Father);
listView.setAdapter(custad);
}
【问题讨论】:
标签: android listview android-viewpager fragment