只有当用户按下按钮时,才会显示输入键盘
问题描述:
我在一个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);
}
}
我想上面的代码,但它仍然显示。
答
设置onFocusChangedListener()
每EDITTEXT你和里面是否已经聚焦禁止键盘流行..
显示它只有当用户按下按钮..
答
有非常简单的解决方案也;在你的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"
答
转到XML和在其中找到要隐藏键盘 给定的属性到活动添加活动..
android:windowSoftInputMode="stateAlwaysHidden"
我更新了我的代码,但它仍然显示焦点键盘改变了,代码是做错了什么? – Hanon 2012-04-03 04:16:04
@Hanon ..代码看起来不错..尝试调试,看看它是否被调用太.. – ngesh 2012-04-03 04:22:37
我记录了结果在if体内,身体部分已执行。我在最后添加了测试inputManager.isActive(),但它总是返回true – Hanon 2012-04-03 06:43:20