我在一个Activity中有一个PopupWindow。 当用户按下活动中的列表项时,将弹出窗口以获取用户的输入。
窗口中有一些EditText。而且我还提供了一些预设一些文字的按钮,所以当用户按下它时它会进入编辑文本。
我可以在首次弹出窗口时禁用软键盘。但是当我改变对edittext的关注(从一个edittext移动到另一个edittext)时,键盘显示出来。
我只想在用户按下弹出窗口中的“显示键盘”按钮时显示软键盘 我该怎么办?
更新:
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus) {
selectedEditText = (EditText)view;
String text = selectedEditText.getText().toString();
selectedEditText.setSelection(text.length());
InputMethodManager inputManager = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(selectedEditText.getWindowToken(), 0);
}
}
我尝试了上面的代码,但它仍然显示。
答案 0 :(得分:0)
在您拥有的每个editText上设置onFocusChangedListener()
,如果它具有焦点,则禁用其中的键盘弹出窗口。
仅在用户按下按钮时显示..
答案 1 :(得分:0)
也有非常简单的解决方案;在EditText上面创建假焦点,你就可以了。 像这样:
<LinearLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:focusable="true"
android:focusableInTouchMode="true">
</LinearLayout>
<!--Your EditText-->
<EditText
...
</EditText>
你也可以在你提到的EditText上面添加这两行,如TextView等。
android:focusable="true"
android:focusableInTouchMode="true"
答案 2 :(得分:0)
转到xml并找到要隐藏键盘的活动 将给定属性添加到Activity ..
android:windowSoftInputMode="stateAlwaysHidden"