【问题标题】:Textwatcher android文本观察器 android
【发布时间】:2018-07-11 03:37:51
【问题描述】:

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

例如,用户在EditText 字段中输入A1A2A3A4A5A6A7A8A9,然后我希望在顶部有一个文本视图以在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);
    }

}

【问题讨论】:

  • 这显示什么?

标签: java android android-edittext append textwatcher


【解决方案1】:

例如:

    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

【讨论】:

  • 唯一的问题是每次用户输入一个字符的时候,还是只有在焦点关闭后才会这样?
  • 我不知道你是怎么设置TextWatcher的,这是解决你问题的方法,你可以试试onTextChanged
  • 谢谢你这对我的问题有用!但是,我现在有一个难题,如果有人粘贴一个字符串并且它也有连字符,那么它仍然会在此之后添加第二个。 ` if((i == 6) && (str.charAt(str.length()-1 != '-')));` 尝试类似的方法不起作用。
  • 对于String,您可以使用contains 方法。检查一下
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-18
  • 2019-01-14
  • 2012-01-31
  • 1970-01-01
相关资源
最近更新 更多