在 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();
你从膨胀的视图中创建一个新视图,并确保列表在其中,然后我使用我创建的方法填充它
我正在做一个项目,我在 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();
你从膨胀的视图中创建一个新视图,并确保列表在其中,然后我使用我创建的方法填充它