所以我有一个编辑文本,如果它在倾斜时处于焦点,我会尝试使用键盘。
我正在使用来自motorola,MC40的设备。 Android版本2.3.4。
我检查它是否是焦点,我已经调试并看到它是焦点。我尝试了以下内容:
txtQuantity.selectAll();
txtQuantity.requestFocus();
当你在我的程序的其他部分工作时,它在这项活动中不起作用。
重点关注edittext,但未选择文本且键盘不在那里。 编辑文本在屏幕上略微下降,在其他活动上略高一些。我相信这就是为什么键盘没有显示,正确或错误的原因?
如果我用
强制键盘getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
然后是它显示的键盘。但是,由于一些奇怪的原因,我的edittext框现在缩小到原来的大小的1 / 3d,你无法看到它写的是什么!
这个问题开始转向我了。
修改:
这个事件似乎有所帮助,作为一种解决方法。但是,我得到一个弹出窗口,要求我在3个选择,单词/所有/ inmethod之间进行选择。如果我选择中间的,它可以工作,但我需要以编程方式做一些如何。
edittext.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0, 0, 0));
edittextbox
<EditText
android:id="@+id/..."
android:layout_width="60dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/..."
android:layout_alignRight="@+id/..."
android:layout_below="@+id/..."
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/..."
android:ems="10"
android:hint="@string/..."
android:imeOptions="actionDone"
android:inputType="number"
android:maxLength="10"
android:nextFocusUp="@+id/..."
android:selectAllOnFocus="true" />
答案 0 :(得分:0)
您可以尝试使用:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
然后在您的清单文件中,您可以将以下内容放在<activity>
标记中:
android:windowSoftInputMode="adjustPan"
答案 1 :(得分:0)
这是一些对我有用的代码。我有一个类似的问题,我会在我的EditText上请求聚焦,但键盘不会显示。
public static void showKeyboardForEditText(Context context, EditText editText) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
}
如果您需要关闭键盘,请输入以下代码:
public static void hideKeyboard(Context context, EditText editText) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}