我的首选项屏幕选项未显示,它显示应用程序。已意外停止..
这是我的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>
答案 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
}
}**