好的,我正在關注一本android書籍,並且他們正在使用擴展PreferenceActivity的類將設置添加到數獨遊戲中,該類由一個intent調用,它所做的只是addPreferencesFromResource(R.xml .settings),這種方法已被棄用,它不工作了,這裏是一本書的代碼:Android SDK使用PreferenceActivity添加設置
package org.example.sudoku;
import android.os.Bundle;
import android.preference.PreferenceActivity;
public class Prefs extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.settings);
}
}
現在我已經調查此事,發現你有實例PreferenceManager爲了做到這個,但在這個例子中,我發現他們從PreferenceFragment擴展Prefs類(不像書中的PreferenceActivity),我設法如下處理代碼:
/*
* this is for use from API version 11 and after...
*
*/
package org.example.sudoku;
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
public class Prefs extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Make sure default values are applied. In a real app, you would
// want this in a shared function that is used to retrieve the
// SharedPreferences wherever they are needed.
PreferenceManager.setDefaultValues(getActivity(),
R.xml.settings, false);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.settings);
}
}
但是這並沒有完成這項工作,我不知道它是否因爲我從意圖調用這個類而這個類擴展了PreferenceFragment而不是PreferenceActivy,或者這不是做這件事的方法,有人可以幫我理解這個嗎?
是否有必要使用PrefrenceActivity/PreferenceFragment?使用SharedPreferences偏好設置= getSharedPreferences(PREF_FILE_NAME,MODE_PRIVATE);也可以實現相同的功能。 – Swayam 2012-08-13 16:00:29
如果你想以我的方式來做,我可以與你分享整個代碼。 :) – Swayam 2012-08-13 16:01:17
偉大的,是的,我會做任何方式,我仍然在努力學習如何做這些事情,無論如何有什麼區別做你的方式嗎? – ershin69 2012-08-13 16:18:00