首页 > 解决方案 > 从edittext中的任何位置删除最后添加的字符

问题描述

我有一个编辑文本,我想将其限制为 160 个字符。如果用户输入了第 161 个字符,则需要显示警报。至此一切正常,我也成功删除了第 161 个字符。但它只删除最后一个字符,如果我在段落内输入第 161 个字符,我想删除那个不是最后一个。

  What i tried : 
  Edt_txt_keyIn.getText().delete(length - 1, length);

标签: javaandroidstringsubstring

解决方案


最好使用 TextWatcher :

Edt_txt_keyIn.addTextChangedListener(new TextWatcher() {
    private int position;

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        position = start;
    }

    @Override
    public void afterTextChanged(Editable s) {
        if (s.length() > 160) {
            Edt_txt_keyIn.setText(s.delete(position, position + 1));
        }
    }
});

推荐阅读