我现在可以将值存储在一个变量中,我想将该变量传递给 fragment 。
使用以下代码我可以加载 fragment 。
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 页面加载 fragment )itemname
输出被分成 2 个窗口,一个用于扩展 listfragment(用于 listview)。一个用于 fragment
fragment 2.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);
}
}
AndroidListFragmentActivity 在这个类 itemname 我想传递 Fragment2.class。
最佳答案
使用 fragment constructors 之一中提供的 bundle , 然后你应该能够检索 Bundle通过在 onCreateView()
getArguments()
例子:
YourFragment.instantiate(context,"fragName",yourBundleWithValue);
然后,在您的 fragment 中:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getArguments().getStringValue("name"); //Returns your string value
return inflater.inflate(R.layout.fragment2, container, false);
}
关于android - 如何在 Android 中使用 Intent 将 Activity 之间的数据传递给 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10958975/