如何使用#号限制(#)来编辑文本?

问题描述 投票:0回答:1

我想将hashtag(#)限制到edittext。最大数量限制必须为3。我怎样才能做到这一点 ?有任何建议或示例代码吗?

例如#红色#蓝色#黄色,但不能再添加#。

请帮助我。谢谢。

android textview android-edittext
1个回答
0
投票

我找到了这样的解决方案:

 etDesc.addTextChangedListener(new TextWatcher() {
             @Override
             public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                 hastagCount = s.toString().length() - s.toString().replace("#", "").length();
                 if(hastagCount<=3){
                     previousDesc = s.toString();
                 }
             }

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

             }

             @Override
             public void afterTextChanged(Editable s) {
                 hastagCount = s.toString().length() - s.toString().replace("#", "").length();
                 if(hastagCount>3){
                     s.clear();
                     s.append(previousDesc);
                     int pos = etDesc.getText().length();
                     etDesc.setSelection(pos);
                     etDesc.setFocusable(true);
                 }

             }
         });
© www.soinside.com 2019 - 2024. All rights reserved.