Как сделать клавишу Enter такой же, как клавиша пробела - Android

У меня есть EditText, и когда пользователь использует клавишу ввода, он создает новую строку. Я хочу, чтобы клавиша ввода делала только один пробел, а не новую строку. Я понятия не имею, как это сделать. Причина, по которой я хочу, заключается в том, что когда пользователь нажимает «Ввод», он создает новую строку, и когда они отправляют сообщение, оно сохраняется и база данных с пустой строкой, а затем, когда оно извлекается и отображается на телефоне Android, отображается и пустая строка.


person user2779973    schedule 16.09.2013    source источник
comment
Вы можете просто удалить пустые строки из пользовательского ввода, прежде чем сохранить его в базе данных.   -  person Ridcully    schedule 16.09.2013
comment
как мне это сделать? я использую пхп   -  person user2779973    schedule 17.09.2013


Ответы (2)


Попробуй это:

 final EditText edittext = (EditText) findViewById(R.id.edittext);
    edittext.setOnKeyListener(new OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            // If the event is a key-down event on the "enter" button
            if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                (keyCode == KeyEvent.KEYCODE_ENTER)) {
              // Perform action on key press
              editText.setText(editText.getText() + " ");
              return true;
            }
            return true;
        }
    });
person nedaRM    schedule 16.09.2013
comment
Я считаю, что вам также понадобится onKey() для возврата true. - person MattMatt; 16.09.2013

Попробуйте этот способ отлично работает

EditText edit = (EditText) findViewById(R.id.edit);

        InputFilter filter = new InputFilter() {
            public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

                for (int i = start; i < end; i++) {

                    if (source.charAt(i) == '\n') {
                        return " ";
                    }
                }
                return null;
            }
        };

        edit.setFilters(new InputFilter[] { filter });
person Biraj Zalavadia    schedule 16.09.2013