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