Я знаю, что это не может быть так сложно, я думаю. Я уверен, что у меня есть все, что я могу предположить, чтобы реализовать мой onClickListener. Я что-то упустил, почему эта сила закрыта? Я предоставил стек, чтобы посмотреть. Любая помощь будет большой. Предполагалось, что это простое действие для сохранения пользовательских настроек. Если я прокомментирую этот код, активность отображает активность.
Preference customPref = (Preference) findPreference("customPref");
customPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { //this line forcecloses every time i run the activity.
@Override
public boolean onPreferenceClick(Preference preference) {
Toast.makeText(getBaseContext(),
"The custom preference has been clicked",
Toast.LENGTH_LONG)
.show();
SharedPreferences customSharedPreference = getSharedPreferences(
"myCustomSharedPrefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = customSharedPreference.edit();
editor.putString("myCustomPref", "The preference has been clicked");
editor.commit();
return true;
}
});
Журналы:
07-10 16:36:47.137: WARN/System.err(1042): java.lang.NullPointerException
07-10 16:36:47.147: WARN/System.err(1042): at com.nyneaxis.android.mpg.Preferences.onCreate(Preferences.java:22)
07-10 16:36:47.147: WARN/System.err(1042): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-10 16:36:47.157: WARN/System.err(1042): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
07-10 16:36:47.157: WARN/System.err(1042): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
07-10 16:36:47.157: WARN/System.err(1042): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
07-10 16:36:47.157: WARN/System.err(1042): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
07-10 16:36:47.167: WARN/System.err(1042): at android.os.Handler.dispatchMessage(Handler.java:99)
07-10 16:36:47.167: WARN/System.err(1042): at android.os.Looper.loop(Looper.java:123)
07-10 16:36:47.167: WARN/System.err(1042): at android.app.ActivityThread.main(ActivityThread.java:4363)
07-10 16:36:47.167: WARN/System.err(1042): at java.lang.reflect.Method.invokeNative(Native Method)
07-10 16:36:47.177: WARN/System.err(1042): at java.lang.reflect.Method.invoke(Method.java:521)
07-10 16:36:47.177: WARN/System.err(1042): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
07-10 16:36:47.177: WARN/System.err(1042): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
07-10 16:36:47.177: WARN/System.err(1042): at dalvik.system.NativeStart.main(Native Method)
Похоже, ваша переменная customPref
имеет значение null. Убедитесь, что у вас есть предпочтение с ключом customPref
в вашем предпочтении xml (если вы его используете), или, может быть, вы набрали там ключ.
findPreference("customPref")
возвращаетnull
. Вы можете это проверить?