老实说,我在问之前做了一些关于此的研究。如何从活动接收意图到fragmentactivity
我正在尝试使用viewpager。我在获取参数Bundle extras = getArguments();
public class SingleViewActivity extends FragmentActivity {
ImageView imageView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_page_view);
ArrayList<Listitem> personArrayList = new ArrayList<Listitem>();
// Listitem item = new Listitem("1", "http://developer.android.com/assets/images/android_logo.png");//I used to add it staticly
Bundle extras = getArguments();
if (extras != null) {
extras = extras.getParcelableArrayList(ARG_PERSON_LIST);
personArrayList.add(item); }
// DemoObjectFragment f = DemoObjectFragment.newInstance(personArrayList);
ViewPager mViewPager = (ViewPager) findViewById(R.id.pager);
Log.d("s", "singleview");
DemoCollectionPagerAdapter mDemoCollectionPagerAdapter = new DemoCollectionPagerAdapter( getSupportFragmentManager(),personArrayList);
mViewPager.setAdapter(mDemoCollectionPagerAdapter);
答案 0 :(得分:1)
您将需要两项活动。由于您没有发布启动发布的Activity
的{{1}},因此我创建了一个仅包含启动显示的Activity
的{{1}}的简单版本。
记下评论的步骤。共有六个步骤。
第一个Button
获取Activity
数据,将其传递给第二个Activity
,后者又传入ArrayList
。
Activity
DemoCollectionAdapter
答案 1 :(得分:0)
您正在将ParcelableList对象分配给Bundle变量。
extras = extras.getParcelableArrayList(ARG_PERSON_LIST); //change it
将其分配给ParcelableList
而不是extras
。
编辑:
试试这个,
ArrayList<Listitem> personArrayList;
// Listitem item = new Listitem("1", "http://developer.android.com/assets/images/android_logo.png");//I used to add it staticly
Bundle extras = getArguments();
if (extras != null) {
personArrayList = (ArrayList<Listitem>) extras.getParcelableArrayList("jh");
personArrayList.add(item);
....
}
答案 2 :(得分:0)
创建片段对象时,还要在创建的片段对象中设置参数。
像这样......
Fragment f = new Fragment();
Bundle args = new Bundle();
args.putInt("someNum", 0);
f.setArguments(args);
然后在onCreate()或onCreateView方法的片段中,获取参数。
getArguments().getInt("someNum");
在您的情况下,它将是可分类或可序列化的对象。