0

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

在片段(存在于我的 settings.java 中)中,我有一个随机数来设置视图。效果很好。我正在尝试将其从随机 int 更改为从共享首选项中提取的内容。在我的 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(); 但这会导致它崩溃。如果我只是用随机整数(任何整数)替换它,...8程序就会完美运行。为什么当我只有数字 8 时我的应用程序会运行,但是当getHour()返回一个数字(在本例中为 8)时它会失败。这是对片段的某种限制吗?

4

1 回答 1

0

因为 settings 是 getHour() 函数的局部变量。如果您想在片段中访问它,请将其设为字段并提供公共 getter 函数 getSettings()。然后通过以下方式获取片段中的活动实例

activity = (Settings) getActivity();

现在访问设置

activity.getHour()

内部片段。

于 2012-12-12T12:39:51.783 回答