当文本为空时,我们要禁用按钮(这是如何设置肖像模式)任何想法?当使用imeOption = actionSend时,禁用发送按钮当EditText为空
编辑:我不认为这很清楚,但我可以启用/禁用我自己的按钮。但是,当使用横向模式时,当弹出键盘时,屏幕被自己的特定文本区域覆盖按钮(因此imeOption)所以我没有问题启用/禁用我有的按钮。这是这个Android按钮,我想禁用文本区域为空时..
当文本为空时,我们要禁用按钮(这是如何设置肖像模式)任何想法?当使用imeOption = actionSend时,禁用发送按钮当EditText为空
编辑:我不认为这很清楚,但我可以启用/禁用我自己的按钮。但是,当使用横向模式时,当弹出键盘时,屏幕被自己的特定文本区域覆盖按钮(因此imeOption)所以我没有问题启用/禁用我有的按钮。这是这个Android按钮,我想禁用文本区域为空时..
添加一个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 { ... }
嘿,由于某种原因,这并没有工作,但它有点带领我走了正确的道路..我看到了该行动采取了该发送按钮,基本上什么也没做,如果文本字段为空 –
这很可能你必须这样以某种方式触发刷新键盘,以使ime选项生效(隐藏并显示?)。另一个好的提示是在该字符串的临时副本上调用trim()(或使用删除空格的regax),然后检查长度 - 确保不发送只有空白的消息 – FunkTheMonk
@FunkTheMonk就我而言了解你的答案,我可以使用'afterTextChanged()'来显示和隐藏软键盘上的'DONE'按钮。对?我也尝试禁用/启用'NEXT'按钮而没有成功。你会如何做到这一点? – JJD
您可以设置可见View.INVISIBLE并在此改变onconfigurationChange重新设置其状态,如果你需要 –
我如何获得一个句柄上发送按钮..这是一个OS呈现按钮。我认为屏幕是外我的活动范围.. –
http://stackoverflow.com/questions/2979441/android-how-to-enable-my-button-back-if-edittext-is-not-empty – Synxmax