首页 文章

在viewpager中填充现有列表视图

提问于
浏览
0

我正在开发一个项目,我在viewpager中有3个活动/片段

现在我想填充这个listview硬编码或JSON文件,问题是findviewbyid返回null所以我不能添加任何新项目 .

i使用此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;
    }
}

里面的页面可以碎片或活动还没有决定什么是我的应用程序的最佳选择

那么这里是viewpager所在的主要位置

<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>

我已经阅读了一些教程,我知道你必须在mainactivity oncreate或pageradapter中填充listview,你在那里给你的页面充气

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);

这是我试图用来填充listview的代码

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

1 回答

  • 0

    所以我想通了,

    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();
    

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

相关问题