我正在开发一个android应用程序。
主要的活动是选择屏幕。
public class MainActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
我的应用程序还包含一个service
,在安卓启动时会自动启动。
在我的服务类的onStart()
中,我试图用以下代码检索用户在首选屏幕中保存的数据
public void onStart(Intent intent, int startId) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
get_prefrence_settings((Preference) preferences);
jniTask = new JniBackGround();
jniTask.execute(new String[] { "http://www.easycwmp.org" });
}
private void get_prefrence_settings(Preference p) {
if (p instanceof PreferenceGroup) {
PreferenceGroup pGrp = (PreferenceGroup) p;
for (int i = 0; i < pGrp.getPreferenceCount(); i++) {
get_prefrence_settings(pGrp.getPreference(i));
}
} else {
if (p instanceof ListPreference) {
ListPreference listPref = (ListPreference) p;
p.setSummary(listPref.getEntry());
client_interface = (String) listPref.getEntry();
}
if (p instanceof CheckBoxPreference) {
if (((TwoStatePreference) p).isChecked())
enable = "1";
}
if (p instanceof EditTextPreference) {
if (pref_key.equals("Time")) {
time = editTextPref.getText();
}
}
}
}
但是,当我的服务开始时,我会崩溃,因为它表明:
android.app.SharedPreferencesImpl can not be cast to android.preference.Preference
如何在不加载onStart()
接口的情况下从我的MainActivity服务中检索首选项设置?
发布于 2015-01-12 17:47:10
如何在不加载onStart接口的情况下从我的MainActivity ()服务中检索首选项设置?
在getString()
上调用getInt()
或相关的getter方法。
https://stackoverflow.com/questions/27907833
复制相似问题