2016-11-15 4 views
0

getText()は、単語間にスペースを1つ入れたテキストを返し、行の先頭と末尾のスペースをすべて削除します。これらの要件を実装するために、私はedittextでこのメソッドをオーバーライドしました:getText()からのカーソルが上書きされました。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]); 
    } 
}