setVisible

Интерфейс, диалоги, темы, стили, меню
Ответить
Arman
Сообщения: 31
Зарегистрирован: 13 фев 2016, 07:13

setVisible

Сообщение Arman » 14 май 2016, 08:44

Здравствуйте, при выборе пункта меню я скрываю одну иконку делаю его setVisible(false), но при повороте экрана она становится видимой, использовал onSaveInstanceStaten и onRestoreInstanceState, но выдает ошибку.

Код: Выделить всё

protected void onSaveInstanceState(Bundle outState)
    {
        super.onSaveInstanceState(outState);
        outState.putString("actionbar_title", actionbar_title);
        outState.putBoolean("action_search_state", action_search_state);
        outState.putBoolean("action_plane_state", action_plane_state);
    }

protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        actionbar_title = savedInstanceState.getString("actionbar_title");

        ActionBar actionBar = getSupportActionBar();
        actionBar.setTitle(actionbar_title);

        action_search_state = savedInstanceState.getBoolean("action_search_state");
        action_plane_state = savedInstanceState.getBoolean("action_plane_state");

       // на эти две строки ошибки
        action_search.setVisible(action_search_state);
        action_plane.setVisible(action_plane_state);

    }

Лог

Код: Выделить всё

05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime: FATAL EXCEPTION: main
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime: Process: loc.mab.lawrk, PID: 13550
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{loc.mab.lawrk/loc.mab.lawrk.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'android.view.MenuItem android.view.MenuItem.setVisible(boolean)' on a null object reference
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3912)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.ActivityThread.access$900(ActivityThread.java:144)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:135)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5221)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:  Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'android.view.MenuItem android.view.MenuItem.setVisible(boolean)' on a null object reference
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at loc.mab.lawrk.MainActivity.onRestoreInstanceState(MainActivity.java:165)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.Activity.performRestoreInstanceState(Activity.java:977)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1161)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2271)
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3912) 
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.ActivityThread.access$900(ActivityThread.java:144) 
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284) 
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102) 
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:135) 
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5221) 
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method) 
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372) 
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
05-14 01:43:36.506 13550-13550/loc.mab.lawrk E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 


Arman
Сообщения: 31
Зарегистрирован: 13 фев 2016, 07:13

Re: setVisible

Сообщение Arman » 14 май 2016, 08:55

Вопрос закрыт оказывается надо использовать public boolean onPrepareOptionsMenu(Menu menu)

Ответить