2013-05-07 179 views
0

所以我有一个编辑文本,我尝试获取键盘时,如果它倾斜在焦点。安卓键盘不会出现

我正在使用摩托罗拉MC40的设备。 Android版本2.3.4。

我检查它是否在焦点,我已经调试过,并且看到它在焦点。我试过以下内容:

txtQuantity.selectAll(); 
    txtQuantity.requestFocus(); 

虽然在我的程序的其他部分工作,但它不适用于此活动。

edittext被关注,但没有选中文本,键盘也没有。 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 机器人:ID = “@ + ID/...” 的android:layout_width = “60dp” 机器人:layout_height = “WRAP_CONTENT” 机器人:layout_alignLeft =“@ + id/...” android:layout_alignRight =“@ + id/...” android:layout_below =“@ + id/...” android:layout_marginTop =“10dp” andro android:inputType =“number”android:hint =“@ string/...” android:输入类型=“number” 机器人:最大长度= “10” 机器人:nextFocusUp = “@ + ID/...” 机器人:selectAllOnFocus = “真”/>

+0

尝试张贴的布局XML。它可能会最终帮助。 – TronicZomB 2013-05-07 14:37:21

回答

0

你可以尝试使用:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); 

,然后在清单文件中,您可以将以下内容放入<activity>标记中:

android:windowSoftInputMode="adjustPan" 
+0

我在我的清单中有这个:android:windowSoftInputMode =“stateHidden | adjustResize | adjustPan” – Johan 2013-05-07 13:52:12

+0

为什么我会问'stateHidden'? – TronicZomB 2013-05-07 13:52:47

+0

代码库部分继承,不确定。我确实改变了只有调整,但没有什么不同。当使用getWindow()强制编辑文本get时,edittext get减半。setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); – Johan 2013-05-07 14:05:10

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); 
} 
+0

谢谢,试过它,但没有键盘出现。 – Johan 2013-05-07 14:07:55

+0

它的一个远射,但也许检查android:focusable =“true”是否在布局的edittext xml中设置? – speedynomads 2013-05-07 14:22:54