一、android 软件盘事件响应在android中,有时需要对EditText实现软件盘监听的场景。当android按下软键盘的时候,响应完成、发送、搜索或者其他事件。Google 提供了 EditorInfo、KeyEvent 的一些方法,能够实现我们需要的功能。详细可研究:EditorInfo.class 和KeyEvent.class.输入回车键隐藏输入键盘的方法:

如果布局中包含多个EditText,可以为每个EditText控件设置android:singleLine=”true”,弹出的软盘输入法中回车键为next,直到最后一个获取焦点后显示为Done。点击Done后,隐藏输入盘。将EditText的imeOptions属性设置android:imeOptions=”actionDone”,则不管是不是最后一个EditText,点击回车键即隐藏输入法。

监听Enter的事件,编写Enter的事件响应。设置文本框的OnKeyListener,当keyCode ==KeyEvent.KEYCODE_ENTER的时候,表明Enter键被按下,就可以编写自己事件响应功能了。

XML文件如下:

1234567891011121314 <EditTextandroid:id="@+id/editTextId"android:layout_width="fill_parent"android:layout_height="50dp"android:imeOptions="actionDone"android:hint="@string/task_new_one"android:textSize="15sp"android:singleLine="true"android:paddingLeft="5dp"android:layout_gravity="center"android:background="@drawable/rectangle"android:inputType="text"></EditText>

  

把EditText的Ime Options属性设置成不同的值,Enter键上可以显示不同的文字或图案。
actionNone : 回车键,按下后光标到下一行
actionGo : Go,
actionSearch : 一个放大镜
actionSend : Send
actionNext : Next
actionDone : Done,隐藏软键盘,即使不是最后一个文本输入框

通过修改android:imeOptions 来改变默认的键盘显示文本。常用的常量值如下:
  1. actionUnspecified 未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED.效果:
  2. actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE 效果:
  3. actionGo 去往,对应常量EditorInfo.IME_ACTION_GO 效果:
  4. actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH 效果:
  5. actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND 效果:
  6. actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT 效果:
  7. actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE 效果:
JAVA代码:
EditText inputText = (EditText) findViewById(R.id. editTextId);   inputText.setImeOptions(EditorInfo.IME_ACTION_DONE);


添加监听事件:
private final EditText.OnEditorActionListener editorActionListener =           new TextView.OnEditorActionListener() {               @Override               public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {                   if (actionId == KeyEvent.ACTION_DOWN || actionId == EditorInfo.IME_ACTION_DONE) {                       //业务代码                       haoMent.createTest(Test.getId(), v.getText().toString());                       UiUtils.hideSoftKeyboard(getApplicationContext(), haoTest.this);                       v.setText("");                       v.clearFocus();                       handler.post(updateView);                   }                   return true;               }          };



但是,如果手机的输入法不是内置输入法,而是其他第三方输入法,那么可能会发生软件盘回车键无响应的问题。为了防止该类事情,则增加红色部分,响应的其KeyEvent。
这时候需要在代码中添加事件响应。

inputKey = (EditText) findViewById(R.id.contactSearch_editText);inputKey.addTextChangedListener(watcher);inputKey.setOnKeyListener(new View.OnKeyListener() {@Override  public boolean onKey(View v, int keyCode, KeyEvent event) {      if (KeyEvent.KEYCODE_ENTER == keyCode && event.getAction() == KeyEvent.ACTION_DOWN) {    handler.post(updateView);    return true;  }  return false;  }});//响应键盘内容public TextWatcher watcher = new TextWatcher() {  @Override  public void beforeTextChanged(CharSequence charSequence, int i, int i2,int i3) {  }  @Override  public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {  }  @Override  public void afterTextChanged(Editable editable) {  handler.post(updateView);  }}; 


二、android 输入类型根据要输入的内容展现相应的软件盘,可通过修改android:inputType 来实现。这是一些常用的输入类型。
android:inputType="none"--输入普通字符android:inputType="text"--输入普通字符android:inputType="textCapCharacters"--输入普通字符android:inputType="textCapWords"--单词首字母大小android:inputType="textCapSentences"--仅第一个字母大小android:inputType="textAutoCorrect"--前两个自动完成android:inputType="textAutoComplete"--前两个自动完成android:inputType="textMultiLine"--多行输入android:inputType="textImeMultiLine"--输入法多行(不一定支持)android:inputType="textNoSuggestions"--不提示android:inputType="textUri"--URI格式android:inputType="textEmailAddress"--电子邮件地址格式android:inputType="textEmailSubject"--邮件主题格式android:inputType="textShortMessage"--短消息格式android:inputType="textLongMessage"--长消息格式android:inputType="textPersonName"--人名格式android:inputType="textPostalAddress"--邮政格式android:inputType="textPassword"--密码格式android:inputType="textVisiblePassword"--密码可见格式android:inputType="textWebEditText"--作为网页表单的文本格式android:inputType="textFilter"--文本筛选格式android:inputType="textPhonetic"--拼音输入格式android:inputType="number"--数字格式android:inputType="numberSigned"--有符号数字格式android:inputType="numberDecimal"--可以带小数点的浮点格式android:inputType="phone"--拨号键盘android:inputType="datetime"android:inputType="date"--日期键盘android:inputType="time"--时间键盘


密码框属性 android:password="true"  让EditText显示的内容自动为星号,输入时内容会在1秒内变成*字样。纯数字 android:numeric="true"     让输入法自动变为数字输入键盘,同时仅允许0-9的数字输入仅允许 android:capitalize="haoTest"  仅允许接受输入haoTest,一般用于密码验证android:editable="false"        设置EditText不可编辑android:singleLine="true"       强制输入的内容在单行android:ellipsize="end"        自动隐藏尾部溢出数据,一般用于文字内容过长一行无法全部显示时

转载: http://www.cnblogs.com/haochuang/p/3571754.html

更多相关文章

  1. Android 中文 API――android.widget合集(中)(50篇)(chm格式)
  2. Android监听手机软键盘的弹起和关闭
  3. Android键盘系统
  4. Android之监听手机软键盘弹起与关闭
  5. Android:EditText 多行显示及所有属性(不自动弹出软键盘)
  6. Android 软键盘
  7. Android:Gravity控制格式
  8. Android 如何使Edittext不弹出软键盘
  9. android键盘弹出之后界面整体上移,顶出去了

随机推荐

  1. androidSDK下的图片资源
  2. android 文本中使用超链接
  3. Android获得手机信息
  4. android Launcher3应用列表修改透明背景
  5. Android 开发指南文档的部分中文翻译
  6. 自定义Android应用程序标题条
  7. android基础入门GridView视图(12)
  8. Android探索与黑科技
  9. TextView 的阴影效果 及小圆点 跑马灯
  10. Android EditView 属性大全