【问题标题】:Populating an existing listview in a viewpager在 viewpager 中填充现有的列表视图
【发布时间】:2015-03-04 18:04:29
【问题描述】:

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

现在我想填充这个硬编码的列表视图或 JSON 文件,问题是 findviewbyid 返回 null,所以我无法添加任何新项目。

我使用这个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 中填充列表视图

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

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

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

【问题讨论】:

    标签: android listview android-viewpager


    【解决方案1】:

    所以我想通了,

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 2021-03-08
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      相关资源
      最近更新 更多