使用imeOption = actionSend时,当EditText为空时禁用发送按钮

时间:2011-11-24 15:28:40

标签: android android-ui

当文本为空时,我们要禁用按钮(这是在纵向模式下设置的方式)任何想法?

编辑:我不认为它很清楚,但我可以启用/禁用我自己的按钮..但是当使用横向模式时,当键盘弹出时,屏幕被一个特定于Android的文本区域覆盖,并带有它自己的按钮(因此imeOption)所以我没有启用/禁用我的按钮的问题..这是我想在文本区域为空时禁用的Android按钮..

1 个答案:

答案 0 :(得分:12)

添加TextChangedListener,只要EditText内的文字发生变化,就会调用{。}}。

message.addTextChangedListener(new TextWatcher() {

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

    public void afterTextChanged(Editable s) {
        if (s == null || s.length() == 0) {
           send.setEnabled(false);
           message.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION);
        }
        else {
          send.setEnabled(true);
          message.setImeOptions( /* whatever you previously had */ );
        }
}

或者,您也可以让您的类实现TextWatcher接口,使代码更清晰。

public class MyDialogFragment implements TextWatcher { ... }