我有一个SherlockFragmentActivity和一个位于TabManager中的SherlockFragment。在这个片段中,我在LinearLayout中有RadioButtons,CheckBoxes,Button和EditText。按下EditText时键盘有时不响应。
在2.1 AVD中,键盘响应不一致,在4.0 AVD中键盘根本不响应,而在设备上键盘响应不一致。有时按下其他对象然后激活显示键盘的能力。
以下是EditText的XML:
<EditText android:id="@+id/EditText1"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:inputType="number"
android:text="20" >
我对这种不一致的活动感到困惑,而不是因为它不能在4.0 AVD上工作。任何有关为什么会发生这种情况的建议或者显示键盘的方法都会很棒。
答案 0 :(得分:5)
您可以为edittext注册焦点侦听器,并在获得焦点时打开软键盘:
edit_Text.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE))
.showSoftInput(edit_Text, InputMethodManager.SHOW_FORCED);
}else
Toast.makeText(getApplicationContext(), "lost the focus", 2000).show();
}
});
修改强>
对于emulator
,我认为它不能保证。实际上我没有任何方式以编程方式显示软键盘。有时它出现,有时则没有。在Android 4.0.3的模拟器中,你可以看到一个符号通知栏而不是出现软键盘:
看看:
Event for Handling the Focus of the EditText
Forcing the Soft Keyboard open