我现在可以将值存储在一个变量中,我希望将该变量传递给片段.
使用以下代码,我可以加载片段.
public class AndroidListFragmentActivity extends Activity { Fragment2 f2; public static String itemname; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.apetiserfragement); itemname=getIntent().getStringExtra("itemname"); Bundle args=new Bundle(); args.putString("itemname",itemname); f2=new Fragment2(); f2.setArguments(args); } }
@H_502_10@(这里我使用XML页面加载片段)itemname
输出分为2个窗口,一个用于扩展listfragment(对于listview).一个用于碎片
Fragment2.xml
public class Fragment2 extends Fragment { String itemname; @Override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) { // TODO Auto-generated method stub System.out.println(getArguments().getString("itemname")); return inflater.inflate(R.layout.fragment2,container,false); } @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); } }
@H_502_10@我希望通过Fragment2.class传递此类itemname中的AndroidListFragmentActivity.
最佳答案
使用其中一个fragment constructors中提供的软件包,然后您应该能够通过在onCreateView()中的getArguments()所在位置检索Bundle
例:
YourFragment.instantiate(context,"fragName",yourBundleWithValue);
@H_502_10@然后,在你的片段中:
public View onCreateView(LayoutInflater inflater,Bundle savedInstanceState) { getArguments().getStringValue("name"); //Returns your string value return inflater.inflate(R.layout.fragment2,false); }
@H_502_10@