“首选项屏幕”选项未显示

时间:2012-09-04 05:48:04

标签: android

我的首选项屏幕选项未显示,它显示应用程序。已意外停止..

这是我的Preference.java -

public class Prefs extends PreferenceActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.id.settings);

}

}

这是首选项的设置 -

<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:defaultValue="true"
     android:summary="@string/hints_summary"
     android:title="@string/hints_title"
     android:key="hints"/>
 </PreferenceScreen>

这是项目选择事件 -

public boolean onOptionsItemSelected(MenuItem item) {
    if(item.getItemId()==R.id.settings)
    {
        startActivity(new Intent(this,Prefs.class));

        return true;
    }
    return false;
}

活动在清单文件中注册良好。

<activity
        android:name=".Prefs"
        android:label="@string/settings_title" >

    </activity>

2 个答案:

答案 0 :(得分:4)

addPreferencesFromResource() 

方法应该加载包含首选项的XML文件。 因此,在您的代码替换

addPreferencesFromResource(R.id.settings) 

addPreferencesFromResource(R.xml.yourPreferenceSettingsFileHere) 

这将解决您的问题。

答案 1 :(得分:0)

请将 addPreferencesFromResource(R.id.settings); 替换为 addPreferencesFromResource(R.layout.settings);

其中settings是首选项xml。

而不是使用 onOptionsItemSelected()
使用
     onPreferenceTreeClick(PreferenceScreen preferenceScreen,首选项首选项){

 final String key = preference.getKey(); 

 if(key.equal("music"){
     /ur implementaion
     }
 }**