Нажатие кнопки, если текстовое поле содержит «\ r» / возврат каретки - PullRequest
0 голосов
/ 19 ноября 2018

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

Я хочу выполнить нажатие кнопки или в этом случае: onClickDone, когда в текстовом поле inputTitle было значение возврата \r / каретки.

функция на

/ приложение / SRC / главная / Java / COM / hazmirulafiq / androidsqlitedatabasedemo / AddItem.java

файл

вот источник: код

Есть ли несложный способ сделать это? или кто-то может помочь мне встать на пути?

заранее большое спасибо

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Я думаю, вы можете искать TextWatcher. Вы можете назначить его на EditText:

inputTitle.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

            String str = s.toString();

            if(str.length() > 0 && str.charAt(str.length() - 1) == '\n') {
                //Run the onClick code here
            }


        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });
0 голосов
/ 19 ноября 2018

Я думаю, что изменение выражения if / else может помочь.
На самом деле пустой TextBox пуст, когда нет текста, это правильно.
Но что, если вы попробуете использовать строковый метод contains('\n);после getText()?

    public void onClickDone(View view) {
         String myInputTitle = inputTitle.getText().toString();
         String myInputDesc = inputDesc.getText().toString();
         if (myInputTitle.isEmpty() || myInputDesc.isEmpty() || !myInputTitle.getText().toString().contains('\n')) {
         Snackbar.make(view, "Please fill in both form!", 
         Snackbar.LENGTH_SHORT).show();
     } else {
         dbManager.insert(myInputTitle, myInputDesc);
         Intent intent = new Intent(AddItem.this, 
         MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
         startActivity(intent);
     }
}
...