[英]Retrieving the preferences from the xml file in Android
我是Android的新手,我正在嘗試按照中的說明處理設置
http://developer.android.com/guide/topics/ui/settings.html
我直接使用了基於片段的解決方案,因為該活動已被棄用:
public class SettingFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}
}
public class SettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Display the fragment as the main content.
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingFragment())
.commit();
}
}
這些設置正確顯示在應用程序中,但是當我嘗試使用以下方法檢索它們的值時:
sharedPref= PreferenceManager.getDefaultSharedPreferences(Dashboard.dashboard);
startDayTime=sharedPref.getString(SettingsActivity.day_switch_start, "");
startNightTime=sharedPref.getString(SettingsActivity.night_switch_start, "");
它抱怨值day_switch_start和night_switch_start可能無法解析。 實際上,當我分解SettingActivity可以識別的值時,我得到了一長串標准設置中的大寫字符串,但不是我自己的字符串。 實際上,這些只是輸入xml文件並從SettingFragment鏈接的,所以我懷疑我傳遞的上下文Dashboard.dashboard是否對此有任何引用。 但是,沒有關於如何將設置引用傳遞到特定上下文的說明,而且他們說設置應該可以在任何地方使用。 我被困住了,有什么解決辦法嗎?
謝謝,
請檢查您再次鏈接的參考,尤其是“ 閱讀首選項”部分。 當您將首選項鍵設置為例如day_switch_start
則在讀取首選項時必須使用相同的String,例如
startDayTime=sharedPref.getString("day_switch_start", "");
您還可以將偏好鍵存儲為常量,如鏈接的示例中所示:
public class SettingsActivity extends PreferenceActivity {
public static final String KEY_PREF_DAY_SWITCH_START = "day_switch_start";
// ...
然后在閱讀首選項時訪問它:
startDayTime=sharedPref.getString(SettingsActivity.KEY_PREF_DAY_SWITCH_START, "");
編輯:我不確定Dashboard.dashboard
應該代表什么,但這應該工作:
sharedPref= PreferenceManager.getDefaultSharedPreferences(this);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.