После того, как пользователь нажимает кнопку «Назад» на устройстве, я ищу тест для редактирования.Как протестировать Android EditTex для содержимого
Если у EditText нет контента (пользователь ничего не набрал, либо набрал какой-то ввод, а затем удалил все его обратно), вернитесь к предыдущему действию (экрану).
В противном случае, EditText имеет содержание так сгореть alertDialog, чтобы увидеть, если они хотят, чтобы «Откажитесь» вход EditText и вернуться к предыдущей деятельности (экран),
или «Отмена» AlertDialog для возврата EditText и изменить/добавить существующий вход.
код у меня есть для кнопки Назад пресса отлично работает, чтобы вернуться к предыдущей деятельности (частичный список ниже):
public boolean onKeyPreIme (int keyCode, @NonNull KeyEvent event){
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
// the key has been pressed down
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getRepeatCount() == 0) {
Я ищу помощи о том, как связать этот код с, если/затем логика для теста содержимого EditText. Я начал с:
final EditText todoEditText = (EditText) findViewById(R.id.CEditText);
int sTodo = todoEditText.getText().toString().trim().length();
if (sTodo == 0) {
run code to hide the keyboard and go to the previous activity
}
else {
run code to show the alertDialog
}
Да, я видел код TextWatcher слушателя и не хотел использовать его до и после кода. Однако для вашего ответа первоначальный драйвер для тестирования содержимого EditText состоит в том, что пользователь нажал кнопку «Назад», но не набрал вход для EditText. Мысли? – AJW
Прежде всего, почему вы пытаетесь перенести данные в Activity на backstack? У вас будет больше проблем, чем пытаться выяснить, есть ли текст в режиме редактирования (проблемы с памятью). Во-вторых, если вы действительно хотите это сделать, в onResume проверьте editText, как я разместил выше, и сделайте все, что пожелаете. – portfoliobuilder
newb для Android здесь. Если в EditText нет входных данных, я хочу вернуть пользователя к предыдущему действию (экрану). Вы говорите, что мне нужно уничтожить текущую деятельность с помощью функции finish(), прежде чем возвращать пользователя к предыдущему действию, чтобы избежать утечек памяти? – AJW