1

我的首选项屏幕选项未显示,它显示应用程序。莫名其妙停了。。

这是我的 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>
4

2 回答 2

4
addPreferencesFromResource() 

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

addPreferencesFromResource(R.id.settings) 

addPreferencesFromResource(R.xml.yourPreferenceSettingsFileHere) 

这将解决你的问题。

于 2012-09-04T06:07:39.043 回答
0

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

其中 settings 是首选项 xml。

而不是使用onOptionsItemSelected()
使用
onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {

 final String key = preference.getKey(); 

 if(key.equal("music"){
     /ur implementaion
     }
 }**
于 2012-10-19T06:19:14.340 回答