android软键盘操作
来源:互联网 发布:什么是淘宝企业店铺 编辑:程序博客网 时间:2024/06/02 01:23
转至:http://blog.csdn.net/wang_shaner/article/details/8467688
"EditText + Button" 形成一个 "输入+按键响应" 的案例在android编程中是最常见不过的了。
但还有一些细节需要注意:
- 在EditText输入后,点击Button进行请求,软键盘应该自行消失
- 在EditText输入后,不点击Button进行请求,而是直接点击软键盘上的"回车",那么也应该能够正常响应请求
针对问题1,可以在响应Button的onClick事件中,主动将软键盘隐藏,加入如下代码即可
- InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
- imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);
- public void setOnEditorActionListener (TextView.OnEditorActionListener l)
- Set a special listener to be called when an action is performed on the text view. This will be called when the enter key is pressed, or when an action supplied to the IME is selected by the user. Setting this means that the normal hard key event will not insert a newline into the text view, even if it is multi-line; holding down the ALT modifier will, however, allow the user to insert a newline character.
- mEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
- @Override
- public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
- //TODO 这里做"回车"响应处理
- return true;
- }
- });
软键盘的Enter键默认显示的是“完成”文本,我们知道按Enter建表示前置工作已经准备完毕了,要去什么什么啦。比如,在一个搜索中,我们输入要搜索的文本,然后按Enter表示要去搜索了,但是默认的Enter键显示的是“完成”文本,看着不太合适,不符合搜索的语义,如果能显示“搜索”两个字或者显示一个表示搜索的图标多好。事实证明我们的想法是合理的,Android也为我们提供的这样的功能。通过设置android:imeOptions来改变默认的“完成”文本。这里举几个常用的常量值:
- actionUnspecified 未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED.效果:
- actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE 效果:
- actionGo 去往,对应常量EditorInfo.IME_ACTION_GO 效果:
- actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH 效果:
- actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND 效果:
- actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT 效果:
- actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE 效果:
下面已搜索为例,演示一个实例,修改main.xml如下:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <EditText
- android:id="@+id/edit_text"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:imeOptions="actionSearch"/>
- </LinearLayout>
修改HelloEditText如下:
- package com.flysnow;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.KeyEvent;
- import android.widget.EditText;
- import android.widget.TextView;
- import android.widget.Toast;
- import android.widget.TextView.OnEditorActionListener;
- public class HelloEditText extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- EditText editText=(EditText)findViewById(R.id.edit_text);
- editText.setOnEditorActionListener(new OnEditorActionListener() {
- @Override
- public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
- Toast.makeText(HelloEditText.this, String.valueOf(actionId), Toast.LENGTH_SHORT).show();
- return false;
- }
- });
- }
- }
运行程序,点击回车(也就是搜索图标软键盘按钮)会显示该actionId.我们上面的每一个设置都会对应一个常量,这里的actionId就是那个常量值。
0 0
- Android 软键盘操作
- Android 软键盘操作
- Android 操作软键盘
- android软键盘操作
- android InputMethodManager 软键盘的一些操作
- android EditText软键盘相关操作
- android软键盘的各种操作
- 软键盘操作
- 软键盘操作
- Android 软键盘的工作原理及相关操作
- android中软键盘的打开关闭及判断操作
- Android 打开软键盘 关闭软键盘
- Android收起软键盘,隐藏软键盘
- android 软键盘模式
- Android 软键盘相关
- Android软键盘研究
- android 软键盘 InputMethodManager
- android 软键盘 InputMethodManager
- Eclipse使用gradle的配置
- 华为机试——从5个人中选取2个人作为礼仪
- 深入浅出设计模式(四):6.创建者模式
- 如何在自己的项目中引入tinymce富文本编辑器
- Cocos2dx网络学习笔记(一)
- android软键盘操作
- 数据库锁的基本原理
- JavaScript之Date
- 命令行下执行php脚本
- AdBlock Plus安装
- java微信接口开发java SpringMVC mybatis 后台框架
- Oracle批量重建索引
- PackageManagerService(Android5.1)深入分析(二)处理permission文件
- HDU 2088 核反应堆【打表 水题】