我正在 Android 上编写一个应用程序,我有这些按钮;当您单击它们时,如果输入面板(EditText)不可见,则会出现,否则会消失。问题是用户仍然可以在 EditText 消失后输入。我附上了两张图片来说明我的意思。
我试过.setEnabled(false)
了 - 没用。
我试过.setFocusable(false)
了 - 没用。
我一起尝试了 - 没有工作。
我正在 Android 上编写一个应用程序,我有这些按钮;当您单击它们时,如果输入面板(EditText)不可见,则会出现,否则会消失。问题是用户仍然可以在 EditText 消失后输入。我附上了两张图片来说明我的意思。
我试过.setEnabled(false)
了 - 没用。
我试过.setFocusable(false)
了 - 没用。
我一起尝试了 - 没有工作。
您可以在设置可见性之前尝试隐藏软键盘。
InputMethodManager imm = (InputMethodManager) YourActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editView.getWindowToken(), 0);
我认为您需要关闭 Android 软键盘。此链接将帮助您解决此问题:关闭/隐藏 Android 软键盘
您可以使用TextWatcher和标志http://developer.android.com/reference/android/text/TextWatcher.html
准备逻辑,以便一旦可见性消失,然后输入public void onTextChanged(CharSequence s, int start, int before, int count)
与之前相同的文本
也参考这个Android TextWatcher.afterTextChanged vs TextWatcher.onTextChanged
这些问题的这些答案表明您可以使用 InputFilter
editText.setFilters(new InputFilter[] {
new InputFilter() {
public CharSequence filter(CharSequence src, int start,
int end, Spanned dst, int dstart, int dend) {
return src.length() < 1 ? dst.subSequence(dstart, dend) : "";
}
}
});