2012-12-12 57 views
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; 
    } 

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

+0

请提供一个崩溃日志。需要更多的代码来理解你想要做什么。 –

回答

0

因为设置是getHour()函数的局部变量。如果你想在你的片段中访问它,使它成为一个字段并提供一个公共的getter函数getSettings()。然后,在片段由

activity = (Settings) getActivity(); 

现在访问设置由

activity.getHour() 

内片段得到活动实例。

+0

嗯...我觉得你的代码在正确的轨道上,但我觉得你应该再次阅读我的问题。我没有任何叫做getSettings()的东西。你是什​​么意思? – EGHDK

+0

查看编辑后。如果我理解正确,您想要在片段中访问getHour()。 – Vasudev

+0

是的,这就是我想要做的,稍后当我回家时我会尝试。谢谢 – EGHDK