добавить backspace в edittext - PullRequest
       27

добавить backspace в edittext

1 голос
/ 02 июня 2011

У меня простое занятие.Только один текст редактирования и одна кнопка. После написания некоторого текста в тексте редактирования, если я нажму кнопку, я хочу удалить последний символ текста.Я пытался так:

String backSpace = txtMsg.getText().toString();
    if(!backSpace.equals(""));
        String mystring=backSpace.substring(0, txtMsg.length()-1)); 
txtMsg.setText("");
txtMsg.append(mystring);

Он работает нормально, но я хочу вручную добавить символ возврата на последнюю позицию и, наконец, в любую позицию, перемещая курсор (с помощью txtMsg.setSelection ());Как мы добавляем любой символ к концу текста:

txtMsg.append("C");

Я хочу знать, что будет вместо C для добавления пробела? Пожалуйста, помогите Спасибо заранее.

Ответы [ 3 ]

13 голосов
/ 01 августа 2011

Я не уверен, что вам все еще нужен ответ на этот вопрос или нет, но недавно у меня возникла такая же потребность, как и у вас, и я использовал метод удаления метона для типа Редактируемый андроид:

http://developer.android.com/reference/android/text/Editable.html#delete(int,%20int)

У меня был пароль EditText и в обработчике кликов для кнопки «удалить» было сделано следующее:

        // delete
    if (m_userPass.getText().length() > 0) {
        m_userPass.getText().delete(m_userPass.getText().length() - 1,
                m_userPass.getText().length());
    }

Метод delete принимает два аргумента: начальную и конечную позицию удаляемого текста. В моем примере я просто делаю кнопку удаления, чтобы удалить последний символ (независимо от курсора). Если вы хотите стать более любопытным, вы можете использовать логику для определения начальной и конечной позиции на основе позиции курсора.

Стартовая позиция должна предшествовать конечной позиции (сначала я случайно сделал эту ошибку). И начальная позиция должна быть больше или равна нулю.

5 голосов
/ 06 января 2012

есть простой способ сделать то, что вы хотите через:

KeyEvent event = new KeyEvent(0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL);
input.dispatchKeyEvent(event);
4 голосов
/ 02 июня 2013

Вы можете попробовать это, у меня это сработало:

if(!(text.length()==0))
    text.setText(text.getText().delete(text.length() - 1, text.length()));
...