自定义功能:在键入Edittext时添加特定符号

时间:2016-02-17 08:37:50

标签: java android android-edittext textwatcher

我正在尝试向现有应用添加功能, 功能是在用户输入时添加带空格的特定符号。我已经用afterTextChaanged();尝试了这个。我想做的是 支持用户类型:我很好,谢谢,然后它应该自动转换为:@ i @am @fine @thankyou。你能帮帮我吗?提前谢谢了。

2 个答案:

答案 0 :(得分:2)

edittext.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {
    edittext.removeTextChangedListener(this);
    String oldstr=edittext.getText().toString();
    String newstr=oldstr.replaceAll("\\s+","@");
    edittext.setText(newstr);
    edittext.removeTextChangedListener(this);
      }
public void beforeTextChanged(CharSequence s, int start, int count, int after)  {

       }

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


     }
}); 

答案 1 :(得分:0)

看看here

您应该可以使用' @'等替换所有空格。

致电

string = string.replace(" ", " @"); 

在你的听众中。

当然,您还应该注意第一个单词,其中(通常)之前不应该有任何空格。 您可以使用占位符来执行此操作,例如

<string name="converted_string">@%1$s</string>

然后在java

your_textView.setText(getString(R.string.converted_string, yourNewReplaceString));