我可以将值存储在一个变量中,现在我希望将该变量传递给片段。
使用以下代码,我可以加载片段。
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);
}
}
(这里我使用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);
}
}
此类itemname中的AndroidListFragmentActivity我希望传递Fragment2.class。
答案 0 :(得分:5)
使用其中一个fragment constructors中提供的捆绑包,然后您可以通过getArguments()
在onCreateView()
<的正确位置找到Bundle / p>
示例:
YourFragment.instantiate(context,"fragName",yourBundleWithValue);
然后,在你的片段中:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getArguments().getStringValue("name"); //Returns your string value
return inflater.inflate(R.layout.fragment2, container, false);
}
答案 1 :(得分:-1)
您需要使用FragmentManager
来显示Fragment
。