Android 如果自定义对话框上的textfield为空,则禁用按钮

Android 如果自定义对话框上的textfield为空,则禁用按钮,android,Android,大家好,我有一个自定义对话框,当点击new_post_消息时,我希望它检查edittext中是否有任何内容,如果没有输入任何内容来禁用按钮,则任何帮助都将非常有用。谢谢 post_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { items.add(ne

大家好,我有一个自定义对话框,当点击new_post_消息时,我希望它检查edittext中是否有任何内容,如果没有输入任何内容来禁用按钮,则任何帮助都将非常有用。谢谢

post_button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    items.add(new MessageItem(55, new_message_to.getText().toString(), "image", DateTime.now(), new_message_text.getText().toString()));

                    itemAdapter.notifyDataSetChanged();

                    if (v.getId() == R.id.button_post);
                    new_message_to.setText("");
                    new_message_text.setText("");

                    dialog.dismiss();
                }
                private TextWatcher textWatcher = new TextWatcher()

                {@Override
                 public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {

                        new_message_to.addTextChangedListener(textWatcher);
                        new_message_text.addTextChangedListener(textWatcher);

                    }

                    @Override
                    public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
                        String s1 = new_message_to.getText().toString();
                        String s2 = new_message_text.getText().toString();


                        if (s1.equals("") || s2.equals("")) {
                            post_button.setEnabled(false);
                        } else {
                            post_button.setEnabled(true);
                        }
                    }
                    @Override
                    public void afterTextChanged(Editable editable) {

                    }
                };

            });

问题在于:

if (new_message_text.equals("")|| new_message_to.equals("")) {
    ....
}
新消息文本永远不等于
,因为
是编辑文本(用于输入文本的视图),而不是字符串。您必须将其与实际输入的文本进行比较

所以你应该做一个:

if (new_message_text.getText().toString().equals("")|| new_message_to.getText().toString().equals("")) {
    ...
}

您需要将
textWatcher
设置为editText
new\u message\u to
并将
new\u message\u text
设置为

 new_message_to.addTextChangedListener(textWatcher);
 new_message_text.addTextChangedListener(textWatcher); 
并使用TextWatcher方法作为

    private TextWatcher textWatcher = new TextWatcher() {@Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
                String s1 = new_message_to.getText().toString();
                String s2 = new_message_text.getText().toString();

                if (s1.equals("") || s2.equals("")) {
                    post_button.setEnabled(false);
                } else {
                    post_button.setEnabled(true);
                }
            }
        @Override
        public void afterTextChanged(Editable editable) {}
    };
移除

 if (v.getId() == R.id.button_post);
                        new_message_to.setText("");
                        new_message_text.setText("");
来自onClick方法

编辑 在活动类中使用
textWatcher
方法并从
post_按钮中删除。设置ClickListener
并使用

new_message_to.addTextChangedListener(textWatcher);
 new_message_text.addTextChangedListener(textWatcher); 

在上次的
OnCreate
方法中。

否如果我将两个edittext字段都保留为空,则不会禁用按钮我应将新消息放在何处。addTextChangedListener(textWatcher)@sim卡在活动类中使用
textWatcher
方法,并从
post_按钮中删除。setOnClickListener