Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从任意位置的edittext中删除最后添加的字符_Java_Android_String_Substring - Fatal编程技术网

Java 从任意位置的edittext中删除最后添加的字符

Java 从任意位置的edittext中删除最后添加的字符,java,android,string,substring,Java,Android,String,Substring,我有一个edittext,我想将其限制为160个字符。如果用户键入了第161个字符,则需要显示警报。到目前为止,一切工作正常,我正在成功删除第161个字符。但它只删除最后一个字符,如果我在段落中输入161个字符,我想删除那个字符,而不是最后一个字符 What i tried : Edt_txt_keyIn.getText().delete(length - 1, length); 最好使用TextWatcher: Edt_txt_keyIn.addTextChangedListene

我有一个edittext,我想将其限制为160个字符。如果用户键入了第161个字符,则需要显示警报。到目前为止,一切工作正常,我正在成功删除第161个字符。但它只删除最后一个字符,如果我在段落中输入161个字符,我想删除那个字符,而不是最后一个字符

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

最好使用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));
        }
    }
});

或者,如果符合您的需要,您可以尝试使用android:maxLength=“160”

maxLength不是问题。(“如果我在段落中输入第161个字符,我想删除该字符,而不是最后一个字符。”)这是我的问题