Как я могу сохранить состояние видимости editText (View.GONE)? - PullRequest
0 голосов
/ 28 мая 2019

У меня проблема с видимостью editText.В начале моего кода я установил видимость GONE

editText.setVisibility(View.GONE);  

Эта часть в порядке, она устанавливает мой editText на GONE.Однако, если я сверну свое приложение и затем вызову его снова, поле editText станет видимым.Я пытался сохранить настройки просмотра с SharedPreferences, но я не знаю, как это сделать правильно.Я пытаюсь сохранить представление с помощью:

myPrefs = getSharedPreferences("save steps", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = myPrefs.edit();
editor.putInt("visibility", editText.getVisibility());
editor.commit();   

, а затем загрузить данные обратно с помощью:

editText.setVisibility(myPrefs.getInt("visibility", 0)); 

Но такой подход приводит к сбою моего приложения.Может быть есть какие-то предложения, как это решить?

1 Ответ

0 голосов
/ 28 мая 2019

Причина проста. Когда приложение возвращается из фона, активность возобновляется (воссоздайте свой edittext).

Вы можете использовать savedInstanceState или поставить

@Override
public void onResume(){
    super.onResume();
    edittext.setVisibility(View.GONE);
}

EDIT: Изменения:

editText.setVisibility(myPrefs.getInt("visibility", 0)); 

до

editText.setVisibility(myPrefs.getInt("visibility", View.GONE)); 

Я не вижу весь код, возможно, сбой приложения вызван исключением нулевого указателя ..

...