Android : 使用 ViewPager 和 AsyncTask 访问 pagerAdapter 布局列表视图
Android : Acess pagerAdapter layout listview with ViewPager and AsyncTask
我有一个这样的 pagerAdapter :
public class AppPagerAdapter extends PagerAdapter {
Context context;
public AppPagerAdapter(Context appcon)
{
this.context = context;
}
@Override
public int getCount() {
return 10;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View viewItem = inflater.inflate(R.layout.pager_layout, container, false);
ListView listView = (ListView) viewItem.findViewById(R.id.list);
}
}
在我的 XML 中是这样的:"pager_layout.xml"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
xmlns:wheel="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent">
<ListView
android:layout_width="wrap_content"
android:id="@+id/list"
android:divider="@color/activity_background"
android:layout_height="match_parent">
</ListView>
而且,我的主要片段页面是这样的:
public class Apps extends Fragment {
public Apps() {}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mRoot = inflater.inflate(R.layout.app_activity, container, false);
ViewPager pager = (ViewPager)mRoot.findViewById(R.id.view_pager);
AppPagerAdapter appadapter = new AppPagerAdapter(getActivity());
pager.setAdapter(appadapter);
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { }
@Override
public void onPageSelected(int position) {
//Access to this position list view for add adapter
new Loading().execute; //async task to get data and add to list view from this pager
}
@Override
public void onPageScrollStateChanged(int state) {}
});
}
}
现在,如何在屏幕页面上访问此视图以将数据添加到此页面?
我想将数据添加到所选页面的列表视图中。
请帮助我。
如果您的 viewpager 有 4 个片段:A、B、C、D。而你打开的是fragment A,然后Fragment B和D会被Viewpager自动生成
而如果你想将数据添加到listView。让我们看看这个方法:
@Override
public Object instantiateItem(ViewGroup container, int position) {
View viewItem = inflater.inflate(R.layout.pager_layout, container, false);
ListView listView = (ListView) viewItem.findViewById(R.id.list);
}
什么是
int position?
这是您选择的页面 - 正在打开。
您上面的代码将在 ViewPager 中创建 10 个页面,每个页面都有 ListView。如果要往这里面加数据,只能在方法里多写代码
instantiateItem()
我有一个这样的 pagerAdapter :
public class AppPagerAdapter extends PagerAdapter {
Context context;
public AppPagerAdapter(Context appcon)
{
this.context = context;
}
@Override
public int getCount() {
return 10;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View viewItem = inflater.inflate(R.layout.pager_layout, container, false);
ListView listView = (ListView) viewItem.findViewById(R.id.list);
}
}
在我的 XML 中是这样的:"pager_layout.xml"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
xmlns:wheel="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent">
<ListView
android:layout_width="wrap_content"
android:id="@+id/list"
android:divider="@color/activity_background"
android:layout_height="match_parent">
</ListView>
而且,我的主要片段页面是这样的:
public class Apps extends Fragment {
public Apps() {}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mRoot = inflater.inflate(R.layout.app_activity, container, false);
ViewPager pager = (ViewPager)mRoot.findViewById(R.id.view_pager);
AppPagerAdapter appadapter = new AppPagerAdapter(getActivity());
pager.setAdapter(appadapter);
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { }
@Override
public void onPageSelected(int position) {
//Access to this position list view for add adapter
new Loading().execute; //async task to get data and add to list view from this pager
}
@Override
public void onPageScrollStateChanged(int state) {}
});
}
}
现在,如何在屏幕页面上访问此视图以将数据添加到此页面?
我想将数据添加到所选页面的列表视图中。
请帮助我。
如果您的 viewpager 有 4 个片段:A、B、C、D。而你打开的是fragment A,然后Fragment B和D会被Viewpager自动生成
而如果你想将数据添加到listView。让我们看看这个方法:
@Override
public Object instantiateItem(ViewGroup container, int position) {
View viewItem = inflater.inflate(R.layout.pager_layout, container, false);
ListView listView = (ListView) viewItem.findViewById(R.id.list);
}
什么是
int position?
这是您选择的页面 - 正在打开。 您上面的代码将在 ViewPager 中创建 10 个页面,每个页面都有 ListView。如果要往这里面加数据,只能在方法里多写代码
instantiateItem()