我的Android应用上有一个TextWatcher
问题是我希望它在每次文本更改时都进行监听,并附加相同的TextView字符串。

例如,用户在A1A2A3A4A5A6A7A8A9字段上输入EditText,那么我希望右上方的textview在6个字符后进行连字符。所以文本视图消失了
A1A2A3-A4A5A6-A7A8A9,而编辑文本仍显示A1A2A3A4A5A6A7A8A9

我在aftertextchanged上尝试过,但没有成功:

    @Override
public void afterTextChanged(Editable s) {

    String hyphenated = "";


    if (s.length() == 6)
    {
        hyphenated = s.toString()+"-";
        mCounter.setText(hyphenated);
    }

    if (s.length() == 12)
    {
        hyphenated = s.toString()+"-";
        mCounter.setText(hyphenated);
    }

}

最佳答案

例如:

    String myString = "A1A2A3A4A5A6A7A8A9";
    StringBuilder str = new StringBuilder(myString);
    for(int i = 0; i < str.length(); i++){
        if(i == 6){
            str.insert(i, "-");
        }
        if(i == 13){
            str.insert(i, "-");
        }
    }
    System.out.println(str.toString());


输出为:A1A2A3-A4A5A6-A7A8A9

10-07 12:03