簡體   English   中英

從Android中的xml文件檢索首選項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM