2016-11-15 2 views
0

Мне нужно, чтобы getText() возвращает текст с одним пробелом между словами и удаляет все пробелы в начале и конце строки. Для реализации этих требований, я перекрытая этот метод в EditText:Курсор из EditText перешел после переопределения getText()

@Override 
public Editable getText() { 
    String text = super.getText().toString(); 
    text = text.trim(); 
    StringBuilder builder = new StringBuilder(); 
    for (int i = 0; i < text.length(); i++) { 
     if ((i + 1) >= text.length() || text.charAt(i) != ' ' || text.charAt(i + 1) != ' ') { 
      builder.append(text.charAt(i)); 
     } 
    } 
    Editable e = new SpannableStringBuilder(builder); 
    return e; 
} 

Но больше не отображается курсор при вводе текста. Я попробовал несколько способов отобразить его в коде и XML, но ничего не помогло. Можно ли как-то исправить эту ошибку?
Мой CutomEditText класс расширяет AppCompatEditText

+1

вы не можете получить метод из GetText() текст, а затем может сделать удаление пространства а не переопределять метод. –

ответ

2

почему вы делаете такое осложнение, когда вы можете сделать это легко

String data = "Where are you going"; // you can also use String data = edittext.getText() 
String str[] = data.split(" "); 
String filtered = ""; 
for(int i=0;i<str.length;i++){ 
    if(i=0) 
     filtered=trim(str[i]); 
    else{ 
     filtered = " "+trim(str[i]); 
    } 
} 
Смежные вопросы