Android:片段如何获取Activity的全局变量

时间:2012-09-11 07:04:28

标签: java android variables android-fragments access

我有一个带有全局变量int x的活动,片段如何获得其活动的变量x的当前值?

4 个答案:

答案 0 :(得分:92)

将var设置为public static,或使用

((MyActivity)getActivity()).getX()

答案 1 :(得分:16)

使用公共静态变量不是活动和片段之间通信的最佳方式。查看this answer了解其他方式:

当Fragment希望与Activity通信时,Android documentation建议使用接口。当活动想要与片段进行通信时,活动应该获得对片段的引用(使用findFragmentById),然后调用片段的公共方法。

这样做的原因是片段与它们所处的活动分离。它们可以在任何活动中重复使用。如果直接从片段中访问父Activity或其中一个全局变量,则无法再在其他Activity中使用该片段。

答案 2 :(得分:6)

科林版本

(activity as MyActivity).x

答案 3 :(得分:3)

***In your Activity
==================
Bundle args = new Bundle();
args.putInt("something", Whatever you want to pass);
fragA.setArguments(args);

In your Fragment
==================
 Bundle args = getArguments();
//whatever you want to get ,get it here.
//for example integer given     
    int index = args.getInt("index", 0);