addPreferencesFromResources,无法搞清楚

时间:2013-02-07 09:36:14

标签: java android android-layout android-intent

首先,对不起,我发了这个帖子,我知道还有其他这样的帖子,我试图使用它们,但我无法让它工作。

我正在使用第三版“你好,Android”这本书,我偶然发现了addPreferencesFromResources()方法的弃用。所以我试图解决它,但由于某种原因我不能让它正常工作。 我有几个我认为在这里使用的课程:

Prefs java class

package com.example.sudoku; 

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class Prefs extends PreferenceActivity
{
    @Override
    protected void onCreate(final Bundle savedInstanceState)
    {
        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.settings);
    }
}

这个是从其他一个帖子中复制的,但正如我所说,我无法让它工作,我不知道为什么。

此外,我有settings.xml文件。

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > 
<CheckBoxPreference
    android:key="music" 
    android:title="@string/music_title" 
    android:summary="@string/music_summary" 
    android:defaultValue="true" />
<CheckBoxPreference
    android:key="hints" 
    android:title="@string/hints_title" 
    android:summary="@string/hints_summary" 
    android:defaultValue="true" />
</PreferenceScreen>

还有我的Sudoku java类的一小部分,它使用Prefs.class调用活动:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) { 
        case R.id.settings:
            startActivity(new Intent(this, Prefs.class));
            return true;
        // More items go here (if any) ... 
    }
    return false;
}

1 个答案:

答案 0 :(得分:0)

我已修复它,我所要做的只是将settings.xml文件中的视图作为Prefs类的内容实现,虽然我无法使用CheckBoxPreference但我必须使用CheckBox,I& #39;我仍然很高兴。