在用户输入时更改 TextInputLayout 的 Hint 值

http://img.mukewang.com/611e267a000147cd10630151.jpg

这是我的TextInputEditText内部TextInputLayout。您可以看到的提示设置为TextInputLayout。


用户必须写255 个字符,否则帖子无效。


我希望数字255随着用户键入而减少,当达到 0 时,提示应为空白。


这是我的代码:


private int charactersLeft = 256;在onCreate方法之外声明。


这段代码在onCreate方法里面:


final TextInputLayout postTextInputBase = findViewById(R.id.post_text_input_base);


final TextInputEditText postTextInput = findViewById(R.id.post_text_input);


postTextInput.addTextChangedListener(new TextWatcher() {


    @Override

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


    }


    @Override

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


        if (charactersLeft == 0) {

            postTextInputBase.setHint(null);

        } else {

            postTextInputBase.setHint((charactersLeft - 1) + " characters left");

        }

    }


    @Override

    public void afterTextChanged(Editable s) {


    }

});

我也尝试设置charactersLeft为characterLeft -= 1但是,java不允许我这样做。


那么,我该怎么做呢?


LEATH
浏览 422回答 3
3回答

Smart猫小萌

要仅更改提示文本,您只需在焦点更改时更改它。editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {        @Override        public void onFocusChange(View v, boolean hasFocus) {            if(hasFocus)                editText.setHint("Enter name");            else                editText.setHint("Name");        }    });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java