Добавить символ автоматически в EditText после нажатия Enter - PullRequest
0 голосов
/ 01 мая 2018

Я хочу автоматически поставить «-» после нажатия на кнопку ввода для следующей строки в editText. Как я собираюсь это сделать?

Ответы [ 3 ]

0 голосов
/ 01 мая 2018

Если вы хотите захватить событие KEYCODE_ENTER и выполнить определенное действие, вы должны использовать OnEditorActionListener, например:

mEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
                if(keyEvent != null && keyEvent.getAction() != KeyEvent.ACTION_DOWN){
                    return false;
                } else if(actionId == EditorInfo.IME_ACTION_NEXT || (keyEvent != null && keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER)){
                    String text = textView.getText().toString() + "-";
                    mEditText.setText(text);
                    mEditText.setSelection(text.length());
                    return true;
                } else {
                    return false;
                }
            }
        });
0 голосов
/ 01 мая 2018

Попробуйте этот код ... определить максимальную длину текста редактирования текста, затем он достиг, затем перейти на следующую строку, затем поставить - знак.

 edittext.addTextChangedListener(new TextWatcher() {
       @Override
       public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

       }

       @Override
       public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
            if (charSequence.toString().trim().length()<=20){

            }
            else{
                et.setText("\n -");
            }
       }

       @Override
       public void afterTextChanged(Editable editable) {

       }
   });
0 голосов
/ 01 мая 2018

Вы можете сделать это с помощью TextWatcher .

editText.addTextChangedListener( new TextWatcher(){
            @Override
            public void onTextChanged( CharSequence txt, int start, int before, int count ) {
                if( -1 != txt.toString().indexOf("\n") ){
//                    new line available                        
// TODO: 5/1/2018 do your logic here 
                    editText.setText(editText.getText().toString().replace("\n","-"+"\n"));

                }
            }
        } );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...