从父类获取数据到片段

时间:2012-12-12 12:32:50

标签: java android android-fragments

我有我的settings.java和我的fragment.java。

在片段(存在于我的settings.java中)中,我有一个随机数来设置视图。哪个效果很好。我正在尝试将其从随机int更改为从共享prefs中撤出的内容。在我的settings.java中,我有一个方法:

public int getHour() {
        SharedPreferences settings = getSharedPreferences("My_Prefs",
                MODE_PRIVATE);
        int timeout = settings.getInt("timeout_hour", 8);
        return timeout;
    }

我在fragment.java中说这个 ...settings.getHour(); 但这导致它崩溃。如果我只是用随机int(任何int)...8替换它,程序运行完美。为什么我的应用程序在我只有数字8时运行,但当getHour()返回一个数字(在这种情况下为8)时它会失败。这是片段的某种限制吗?

1 个答案:

答案 0 :(得分:0)

因为settings是getHour()函数的局部变量。如果要在片段内部访问它,请将其设为字段并提供公共getter函数getSettings()。然后通过

获取片段中的活动实例
activity = (Settings) getActivity();

现在通过

访问设置
activity.getHour()

内部片段。