我有執行首選項的問題。 當我運行我的應用程序,然後單擊首選項選項卡上沒有任何反應。 我不知道代碼有什麼問題,因爲logcat不顯示任何東西。 並提前致謝。onPreferenceClick不工作在android
public class Reset extends PreferenceActivity{
private Preference myPreference;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myPreference = findPreference("reset");
myPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference arg0) {
Builder alertDialog = new AlertDialog.Builder(Reset.this);
alertDialog.setMessage("Reset?");
alertDialog.setCancelable(true);
alertDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor editor = settings.edit();
editor.clear();
editor.commit();
} });
alertDialog.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
} });
alertDialog.show();
return false;
}
});
}
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<Preference android:title="Reset Score" android:key="reset">
</Preference>
</PreferenceScreen>
'myPreference'沒有被初始化,所以它總是null,'NullPointerException'是th在'onCreate()'方法中傳播。 – jelies
我編輯了我的代碼,但同樣的問題。 – Taha
問題是相同的@Taha,'myPreference'爲空,並且您從中獲取preferenceManager。用這個代替:'myPreference = findPreference(「reset」);' – jelies