我在阻止AlertDialog中的EditText自动获取焦点并显示键盘时遇到了一些麻烦。
展示活动有windowSoftInputMode=stateHidden
和EditTexts,在活动加载时无法获得焦点。但是当显示对话框时,键盘会自动出现。
如何在显示键盘时阻止我的AlertDialog显示?
答案 0 :(得分:16)
如果您有AlertDialog的自定义布局,则可以使用获取焦点而不是编辑文本的虚拟视图:
<!-- Dummy view -->
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:focusable="true"
android:focusableInTouchMode="true"/>
尝试将该视图放在edittext之前。
答案 1 :(得分:0)
创建编辑文本时使用以下内容
<EditText
android:id="@+id/E_table_no"
android:layout_width="0dp"
android:layout_height="38dp"
android:layout_weight="1"
android:focusableInTouchMode="false"
android:imeOptions="flagNoExtractUi"
android:singleLine="true"
android:windowSoftInputMode="stateHidden" />
答案 2 :(得分:-1)
使用以下代码强制隐藏Android SoftKeyboard,
EditText myEditText = (EditText) findViewById(R.id.myEditText);
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);