0

Мне нужно добавить $ после каждого набора чисел, который пользователь вводит в текст редактирования. Например, как только пользователь вводит номер, $ должен автоматически помещаться перед этим номером. Я попытался использовать textwatcher, чтобы получить текущую строку, а затем добавить $ и установить текст edittext. Когда я это делаю, клавиатура замерзает.добавить символ после каждого слова в edittext

+0

Impement а [textwatcher] (http://developer.android.com/reference/android/text/TextWatcher. html) –

+0

Можете ли вы опубликовать код textwatcher? Распространенная ошибка заключается в том, чтобы внести изменения в текст в EditText внутри элемента textwatcher, который запускает 'onTextChanged', который снова меняет текст и т. Д. И т. Д. Возможно, вы ввели цикл. Вы должны сначала удалить текстовый наблюдатель 'yourEditText.removeTextChangedListener (this);', затем внести свои изменения, а затем добавить textwatcher обратно в 'yourEditText.addTextChangedListener (this);' - все внутри метода 'onTextChanged'. – CodeMonkey

ответ

-1

Похоже, вы ввели бесконечный цикл внутри метода onTextChanged вашего textwatcher. Вы должны удалить слушателя, а затем внесите необходимые изменения, а затем повторно добавить слушателя:

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

     // Remove TextChangedlistener so that this function does not 
     // enter an infinite loop when we change it in code! 
     yourEditText.removeTextChangedListener(this); 

     // Add your code to insert the '$' symbol here 


     // Re-add listener 
     yourEditText.addTextChangedListener(this); 
     // This just moves the cursor back to the end of the input 
     yourEditText.setSelection(editText.getText().length()); 

    } 
Смежные вопросы