Всякий раз, когда я делаю onBackPressed() и получаю доступ к editText
private void saveValue() {
sp.edit().putString(KEY, editText.getText().toString().trim()).apply();
}
Я пытаюсь получить доступ к этому из onBackPressed() во фрагменте, как показано ниже.
@Override
public boolean onBackPressed() {
saveValue();
return super.onBackPressed();
}
Я получаю исключение ниже на некоторых устройствах на базе ОС Android 8.0.
Fatal Exception: java.lang.NullPointerException
Attempt to invoke virtual method 'android.text.Editable
androidx.appcompat.widget.AppCompatEditText.getText()' on a null object
reference
В вашем saveValue() проверьте, является ли ваш editText нулевым или инициализируйте его как пустую строку
editText инициализируется с помощью Butterknife и содержит ссылку на представление, когда пользователь выполняет любое другое действие, кроме onBackPressed(). Только в этом случае значение EditText равно null, и мне интересно, как это возможно?
измените этот код с onbackpressed на onpause
при переопределении событий всегда проверяйте значение nullcheck активности/фрагмента и/или доступного представления. Я полагаю, каким-то образом представление/макет, добавленное к этому действию/фрагменту, уже исчезло
и проверьте, не сделали ли вы уже ButterKnife.unbind или что-то подобное перед этим кодом
куда ты это присваиваешь
editText?