我知道这可能与以下内容重复:What to use instead of "addPreferencesFromResource" in a PreferenceActivity?
但我仍然无法让代码工作,并会感谢一些帮助。我不能得到: " addPreferencesFromResource(R.xml.preferences);"上班。
首选项未解析,即使它位于R.xml文件夹中。
我按照上面链接中的例子写了这封信。
请帮助!!
package com.example.oasisreference;
import android.R;
import android.R.xml;
//import android.annotation.TargetApi;
import android.os.Bundle;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
public class Prefs extends PreferenceActivity {
@Override
protected void onCreate(final Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
}
public static class MyPreferenceFragment extends PreferenceFragment
{
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
}
Res.xml文件夹中的preferences.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android" >
<EditTextPreference
android:title="User Name"
android:key="name"
android:summary="Enter your name"
></EditTextPreference>
<CheckBoxPreference
android:title="Euro Currency"
android:defaultValue="false"
android:key="euro"
android:summary="Check for Use Cost Calculator to be in Euros/Liters">
</CheckBoxPreference>
</PreferenceScreen>
menu.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/aboutUs"
android:title="About the Author">
</item>
<item
android:id="@+id/preferences"
android:title="Preferences">
</item>
<item
android:id="@+id/exit"
android:title="Exit">
</item>
</menu>
答案 0 :(得分:0)
删除导入android.R 它会起作用
答案 1 :(得分:0)
答案是,它实际上并没有被弃用.... 他们只是想让你使用preferenceFragments(见下文)
事实证明,它是相同的例程名称,但它被实例化为preferenceFragment的一部分,它是一个不同的类。它没有被弃用。这很微妙,但开发人员网站上的示例从首选项片段中引用它。将已弃用的调用粘贴到preferenceFragment类中,并亲自查看弃用消失
在preferenceFragment类声明中:
package android.preference;
public abstract class PreferenceFragment extends android.app.Fragment {
// ...
public void addPreferencesFromIntent(android.content.Intent intent) {
/* compiled code */
}
public void addPreferencesFromResource(int preferencesResId) {
/* compiled code */
}
// ...
并在另一个班级
package android.preference;
public abstract class PreferenceActivity extends android.app.ListActivity implements android.preference.PreferenceFragment.OnPreferenceStartFragmentCallback {
/**
* @deprecated
*/
@java.lang.Deprecated
public void addPreferencesFromResource(int preferencesResId) {
/* compiled code */
}
答案 2 :(得分:-1)
在@SuppressWarnings("deprecation")
方法之前添加OnCreate
。