我有一个5行的EditText。我使用复选框启用或禁用软键盘。
checkBoxSystem.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (checkBoxSystem.isChecked()) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(textArea, InputMethodManager.SHOW_IMPLICIT);
textArea.setSelection(textArea.getText().length());
textArea.setMinLines(5);
textArea.setLines(5);
textArea.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
} else {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(textArea.getWindowToken(), 0);
textArea.setMinLines(5);
textArea.setLines(5);
textArea.setInputType(InputType.TYPE_NULL);
}
}
});
然而,当我检查它时,文本变成单行EditText。 然后,当我取消选中它时,它返回到他的5线位置。 然后我再次勾选方框,EditText仍为5行。 另一个问题是,当我单击后退时,软键盘会消失,但当我触摸EditText时,它不会出现,所以我需要点击两次复选框。
如何防止EditText变成单行?如果我已经选中了复选框,那么当我点击EditText时,如何激活键盘呢?