我有我的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)时它会失败。这是片段的某种限制吗?
答案 0 :(得分:0)
因为settings是getHour()函数的局部变量。如果要在片段内部访问它,请将其设为字段并提供公共getter函数getSettings()。然后通过
获取片段中的活动实例activity = (Settings) getActivity();
现在通过
访问设置activity.getHour()
内部片段。