3

我知道这可能与以下内容重复:在 PreferenceActivity 中使用什么代替“addPreferencesFromResource”?

但我仍然无法让代码正常工作,希望能得到一些帮助。我无法得到:“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>

菜单.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>
4

3 回答 3

0

删除 import android.R 它将起作用

于 2013-06-21T07:07:51.657 回答
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 */
}
于 2014-07-27T00:31:19.790 回答
-1

@SuppressWarnings("deprecation")在方法之前添加OnCreate

于 2013-06-29T11:20:26.633 回答