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