码迷,mamicode.com
首页 > 移动开发 > 详细

Android开发中利用imeOptions属性将键盘回车键改成搜索等功能键【提高用户输入体验】

时间:2016-05-12 19:29:01      阅读:375      评论:0      收藏:0      [点我收藏+]

标签:

Android中键盘输入是用户输入交互的最常用最直接的手段,关于键盘输入,有几点可以提高用户使用体验。

第一:弹出键盘整体页面上移,使键盘不遮挡控件,需要在AndroidManifest设置对应Activity的windowSoftInputMode属性

stateVisible

    设置为这个属性,可以将软键盘召唤出来,即使在界面上没有输入框的情况下也可以强制召唤出来

adjustResize

    这个属性表示Activity的主窗口总是会被调整大小,从而保证软键盘显示空间。

效果如下图所示:

技术分享技术分享

<activity
    android:name=".activity.LoginActivity"
    android:windowSoftInputMode="stateVisible|adjustResize"
    android:label="@string/title_activity_login"
    android:screenOrientation="portrait"></activity>
第二:页面中有多个输入控件的时候,输入控件焦点的切换需要用户点击控件切换的话,使用体验不是很好,可以将键盘的回车键改成“下一步”按钮,直接将光标焦点切换到下一个输入控件。在布局文件中设置

android:imeOptions="actionNext"
android:singleLine="true"
即可

如下图所示

技术分享

第三:提交表单时,可以点击提交按钮提交,也可以最后一个EditText获取焦点时设置键盘的回车键为发送键,这样点击了键盘的回车键就自动处理了提交表单的逻辑。

设置也很简单,输入控件布局文件添加两个属性如下:

android:imeOptions="actionSend"
android:singleLine="true"
在Activity中检测到键盘回车键是否按下,从而处理响应的逻辑

mPassWord.setOnKeyListener(new View.OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_ENTER) {
            ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
                    .hideSoftInputFromWindow(LoginActivity.this.getCurrentFocus()
                            .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
            if(TextUtil.isEmpty(mPassWord.getText().toString())){
                ToastUtil.getInstance().show("请输入密码");
            }else{
                login(mUserName.getText().toString(),mPassWord.getText().toString());
            }
        }
        return false;
    }
});
如下图所示:

技术分享

第四:将回车键改成搜索按键,布局文件EditText添加如下两个属性:

android:singleLine="true"
android:imeOptions="actionSearch"
回车键的点击检测和上边的一样

示例图如下:

技术分享


Android开发中利用imeOptions属性将键盘回车键改成搜索等功能键【提高用户输入体验】

标签:

原文地址:http://blog.csdn.net/wangshihui512/article/details/51350501

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!