0

Activity の onCreate() メソッドでボタンを作成し、onRestoreInstanceState(Bundle) メソッドでボタンの状態を変更しようとしています。このメソッドには 1 行しかありません。

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState)
{
savedButton.setSelected(true);
super.onRestoreInstanceState(savedInstanceState);
}

しかし、ボタンの状態を変更したこの行で java.lang.NullPointerException 例外が発生し、正常に動作することがあります。

どこが間違っていますか?

ログ:

java.lang.NullPointerException
    at com.test.MainActivity.onRestoreInstanceState(MainActivity.java:35)
    at android.app.Activity.performRestoreInstanceState(Activity.java:934)
    at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1145)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2088)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
    at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3576)
    at android.app.ActivityThread.access$800(ActivityThread.java:143)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4950)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
    at dalvik.system.NativeStart.main(Native Method)
4

1 に答える 1

1

これを入れて

if(savedInstanceState != null) {
    savedButton.setSelected(true);
}

onCreate(Bundle savedInstanceState)ボタンを定義した後、代わりにあなたの中に。

于 2013-06-12T07:12:35.183 に答える