0

У меня есть счетчик, который имеет номера от 1 до 10. Если пользователь выбирает что-либо выше 1, некоторый EditText, который является INVISBLE, становится VISIBLE, это то, что я хочу. Но когда я меняю его с портрета на пейзаж, он возвращается к НЕВИДИМО.VISIBLE EditText переходит к INVISBLE при изменении ориентации

Это где изменение происходит

btn_Calc.setOnClickListener(new View.OnClickListener() { 
     @Override 
     if (split > 1) { 
      et_APP.setVisibility(View.VISIBLE); 
      tv_app.setVisibility(View.VISIBLE); 
      vis = 1; 
      } 
      else{ 
       et_APP.setVisibility(View.INVISIBLE); 
       tv_app.setVisibility(View.INVISIBLE); 
       vis = 2; 
        } 
       }); 

И я пытался сделать onSaveInstanceState как это

if(savedInstanceState != null) { 

     int isVis = savedInstanceState.getInt("vis", 2); 
     if(isVis == 1){ 
      et_APP.setVisibility(View.VISIBLE); 
      tv_app.setVisibility(View.VISIBLE); 
     } 
     else{ 
      et_APP.setVisibility(View.INVISIBLE); 
      tv_app.setVisibility(View.INVISIBLE); 
     } 
    } 

public void onSaveInstanceState(Bundle savedInstanceState){ 
    super.onSaveInstanceState(savedInstanceState); 
    savedInstanceState.putInt("getVisible", vis); 
} 

Извините за плохое форматирование, я вырезал несвязанный код.

Это работает, если выбранный элемент в счетчике больше 1, и я нажимаю кнопку calc, он показывает поля, которые я хочу, но когда я меняю ориентацию, они исчезают снова. Любые идеи о том, как я могу оставаться видимыми, когда меняю ориентацию?

ответ

3

Имена ваших ключей не совпадают между сохранением и загрузкой.

Экономия:

savedInstanceState.putInt("getVisible", vis); 

Восстановление:

int isVis = savedInstanceState.getInt("vis", 2); 
+0

WOW! Да, не могу поверить, что я пропустил это. Сила второй пары глаз. Спасибо. – Kalkrin

+0

@ Калкин полностью понимает, что вы имеете в виду. –

+0

@Kalkrin Если бы вы могли принять этот ответ как правильный, я был бы признателен (а не только повышать). –

1

Компоновка воссоздается, если вы не хотите, Android, чтобы сделать что-нибудь добавить следующую строку: `андроида: configChanges =" keyboardHidden | ориентация | screenSize "" на активность в манифесте.