好的,我正在关注一本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