将捆绑数据传递到以viewPager开头的片段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将捆绑数据传递到以viewPager开头的片段相关的知识,希望对你有一定的参考价值。
在Eclipse v22.6.2中,一个名为Act1的Activity以intent开头。 一些数据使用putExtras作为包传递。
Intent intent = new Intent(MyMain.this, Act1.class);
Bundle bundle = new Bundle();
bundle.putString("id", _productid);
bundle.putString("name", _productname);
bundle.putString("price", _productprice);
bundle.putString("t1", _t1);
intent.putExtras(bundle);
startActivity(intent);
在Act1中,一些textViews填充了bundle中传递的参数的数据
txtpid = (TextView) getView().findViewById(R.id.txtdisplaypid);
txtpname = (TextView) getView().findViewById(R.id.txtdisplaypname);
txtpprice = (TextView) getView().findViewById(R.id.txtdisplaypprice);
txtt1 = (TextView) getView().findViewById(R.id.txtdisplayt1);
txtpid.setText(getArguments().getString("id"));
txtpname.setText(getArguments().getString("name"));
txtpprice.setText(getArguments().getString("price"));
txtt1.setText(getArguments().getString("t1"));
在Act1中,使用FragmentPagerAdapter的ViewPager用于启动名为Frag1的片段。没有使用意图。
我的两个问题: 如何将捆绑的数据传递给Frag1? 一旦Frag1拥有数据,它是如何访问的?
示例代码将不胜感激。
答案
结果证明这很容易。形成一个捆绑包以发送调用应用程序Act1
public Bundle getDetailBundle(){
// define variables and populate
t1 = (i.getExtras().getString("t1"));
t2 = (i.getExtras().getString("t2"));
t3 = (i.getExtras().getString("t3"));
t4 = (i.getExtras().getString("t4"));
Bundle bundle = new Bundle();
bundle.putString("t1", t1);
bundle.putString("t2", t2);
bundle.putString("t3", t3);
bundle.putString("t4", t4);
return bundle;
}
在frag中使用bundle
public String stringo;
public Bundle bunny;
// be sure to place the following two lines of code in or after OnCreateView or //else they will end up null.
bunny = ((Act1) getActivity()).getDetailBundle();
textView.setText(bunny.getString("t1"));
以上是关于将捆绑数据传递到以viewPager开头的片段的主要内容,如果未能解决你的问题,请参考以下文章
android - 将数据从 Activity 传递到 ViewPager 中的 Fragment