我需要从Android中的SoftKeyboard获取Show / Hidden事件。
我做了一项研究,但没有任何效果。
我想要那个'因为我们正在使用低分辨率的平板电脑5.0',所以当您编辑EditText时,键盘会全屏显示,然后按或“输入或下一个”键,或者你按下后退按钮来隐藏键盘...我需要用新值更新一些字段,但我不能使用TextWatcher'因为有一些业务逻辑在哪些是正确的字段要更新,'因为我只是想要在用户真正完成输入时更新。
并且onFocusChanged不是一个选项,因为我们不希望我们的客户需要在下一个字段中占用,并隐藏键盘以查看新值。
我也不想覆盖onTouchEvent,看看用户cliked的位置与他正在编辑的字段是否相同。
很抱歉我要求的具体问题和更具体的解决方案。
抱歉我的英语不好:D
答案 0 :(得分:4)
使用树形视图观察器检测视图高度的任何变化,并且可以检查键盘状态
final View activityRootView = findViewById(R.id.chat_pane_root_view);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener()
{
@Override
public void onGlobalLayout()
{
InputMethodManager mgr = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
if(mgr.isAcceptingText())
{
//keyboard is up
}
}
});
答案 1 :(得分:-1)
首先,您在清单文件中声明您的活动声明如下
<activity android:name="Map" android:windowSoftInputMode="stateHidden">
从此属性中隐藏了键盘, 在此之后,您将在main.xml文件edittext中声明imeOption属性,如此
<EditText
android:id="@+id/edttexttitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:hint="@string/tasktitle"
android:imeOptions="actionNext"
android:inputType="text"
android:textSize="@dimen/font_size_medium"
android:textColor="@color/darkgray1" />
这个代码是第一个edittext,如果多于一个,如果只有一个edittext,则需要更改edittext的imeOption,如
android:imeOptions="actionGo"