在 viewpager 中填充现有列表视图

Populating an existing listview in a viewpager

我正在做一个项目,我在 viewpager

中有 3 个 activities/fragments

现在我想填充此列表视图硬编码或 JSON 文件,问题是 findviewbyid returns 为空,因此我无法添加任何新项目。

我使用这个 pageradapter 创建 viewpager

public class MyPagerAdapter extends PagerAdapter {
    public int getCount() {
        return 3;
    }
    public Object instantiateItem(ViewGroup collection, int position) {
        LayoutInflater inflater = (LayoutInflater) collection.getContext()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        int resId = 0;
        switch (position) {
            case 0:
                resId = R.layout.activity_friend;
                break;
            case 1:
                resId = R.layout.activity_mainactiv;
                break;
            case 2:
                resId = R.layout.activity_map;
                break;
        }
        View view = inflater.inflate(resId, null);
        ((ViewPager) collection).addView(view, 0);
        return view;
    }
    @Override
    public void destroyItem(ViewGroup arg0, int arg1, Object arg2) {
        ((ViewPager) arg0).removeView((View) arg2);
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        return arg0 == ((View) arg1);
    }

    //public boolean isViewFromObject(ViewGroup arg0, Object arg1) {
    // return arg0 == ((View) arg1);
    //}
    @Override
    public Parcelable saveState() {
        return null;
    }
}

里面的页面可能会碎片化,或者 activity 还没有决定什么最适合我的应用程序

那么这里就是viewpager所在的main

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.support.v4.view.ViewPager
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/viewpager_layout"/>
</LinearLayout>

我已经阅读了一些教程并且我知道您必须在主activity oncreate 中或在您扩充页面的 pageradapter 中填充列表视图

prepareListData();
listDataHeader.toArray(Listdata);
ListView listview1 = (ListView)findViewById(R.id.listView);
ArrayAdapter<String> Sadapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,Listdata);
listview1.setAdapter(Sadapter);

这是我用来填充列表视图的代码

我希望我能在这里得到更多信息所以我知道在哪里

所以我想通了,

resId = R.layout.activity_mainactiv;
                    v = inflater.inflate(resId,null);

                    // get the listview
                    View explist = v.findViewById(R.id.expandableListView2);
                    expListView = (ExpandableListView)explist;

                    // preparing list data
                    prepareListData();

你从膨胀的视图中创建一个新视图,并确保列表在其中,然后我使用我创建的方法填充它