EditText输入限制500字?

Hel*_*han 2 android

我有一个EditText给用户评论.现在我想输入限制将是500字.这意味着用户最多可以写500条评论.我该如何实现呢?请帮我.

Eri*_*ric 9

可以使用a TextWatcher来观看文本而不允许它超过500个单词.

实施你的TextWatcher:

final int MAX_WORDS = 500;
final EditText editBox = (EditText) findViewById(<your EditText field>);
editBox.addTextChangedListener(new TextWatcher() {
    public void afterTextChanged(Editable s) {
        // Nothing
    }

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        // Nothing
    }

    public void onTextChanged(CharSequence s, int start, int before, int count) {
        String[] words = s.toString().split(" "); // Get all words
        if (words.length > MAX_WORDS) {
            // Trim words to length MAX_WORDS
            // Join words into a String
            editBox.setText(wordString);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

注意:您可能需要使用的东西从这个线程加入String[]wordString.

但是,坦率地说,这不是世界上最有效的方法.事实上,String在每个键条目上创建整个数组可能非常费力,特别是在旧设备上.

我个人推荐的是,您允许用户输入他们想要的任何内容,然后在他们点击提交时验证它的字数.如果是这样的<=500话,请允许它,否则否认它,并给它们一些Toast告诉它们的消息(一个?).

最后,通过字数统计验证是非常不确定的.请记住,像&nbsp;(字符160)这样的东西可以用作空格,但不会被这个空间拾取.你是不如挑选一组字符的限制和使用限制的领域maxLength已经提供了答案.