android 回车键事件编程

实现android按下回车键便隐藏输入键盘,有两种方法:

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

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

点击下载源码

具体代码:

view plaincopy to clipboardprint?

  1. package listenter.main;
  2. import android.app.Activity;

  3. import android.content.Context;

  4. import android.os.Bundle;

  5. import android.view.KeyEvent;

  6. import android.view.View;

  7. import android.view.View.OnKeyListener;

  8. import android.view.inputmethod.InputMethodManager;

  9. import android.widget.EditText;
  10. public class EnterListenter extends Activity {

  11. /** Called when the activity is first created. */

  12. @Override

  13. public void onCreate(Bundle savedInstanceState) {

  14. super.onCreate(savedInstanceState);

  15. setContentView(R.layout.main);
  16. EditText password=(EditText)findViewById(R.id.password);
  17. password.setOnKeyListener(onKey);
  18. }
  19. OnKeyListener onKey=new OnKeyListener() {
  20. @Override
  21. public boolean onKey(View v, int keyCode, KeyEvent event) {
  22. // TODO Auto-generated method stub
  23. if(keyCode == KeyEvent.KEYCODE_ENTER){
  24. InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
  25. if(imm.isActive()){
  26. imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0 );
  27. }
  28. return true;
  29. }
  30. return false;
  31. }
  32. };

  33. }

[java] view
plain
copyprint?

  1. package listenter.main;
  2. import android.app.Activity;

  3. import android.content.Context;

  4. import android.os.Bundle;

  5. import android.view.KeyEvent;

  6. import android.view.View;

  7. import android.view.View.OnKeyListener;

  8. import android.view.inputmethod.InputMethodManager;

  9. import android.widget.EditText;
  10. public class EnterListenter extends Activity {

  11. /** Called when the activity is first created. */

  12. @Override

  13. public void onCreate(Bundle savedInstanceState) {

  14. super.onCreate(savedInstanceState);

  15. setContentView(R.layout.main);
  16. EditText password=(EditText)findViewById(R.id.password);
  17. password.setOnKeyListener(onKey);
  18. }
  19. OnKeyListener onKey=new OnKeyListener() {
  20. @Override
  21. public boolean onKey(View v, int keyCode, KeyEvent event) {
  22. // TODO Auto-generated method stub
  23. if(keyCode == KeyEvent.KEYCODE_ENTER){
  24. InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
  25. if(imm.isActive()){
  26. imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0 );
  27. }
  28. return true;
  29. }
  30. return false;
  31. }
  32. };

  33. }

图-1 点击回车键隐藏键盘

PS:

把EditText的Ime Options属性设置成不同的值,Enter键上可以显示不同的文字或图案
actionNone :
回车键,按下后光标到下一行
actionGo : Go,
actionSearch : 一个放大镜
actionSend : Send

actionNext : Next
actionDone : Done,隐藏软键盘,即使不是最后一个文本输入框

时间: 2024-10-10 05:44:00

android 回车键事件编程的相关文章

Android C++高级编程

简介 <Android C++高级编程--使用NDK>提供了Java原生接口(JNI)的概述.Bionic API.POSIX 线程和套接字.C++支持.原生图形和声音API以及NEON/SIMD优化.   本文将记录主要知识点. 详解 1.深入了解Android NDK Android NDK不是一个独有的工具:它是一个包含API.交叉编译器.链接程序.调试器.构建工具.文档和实例应用程序的综合工具集.组件如下:ARM.x86和MIPS交叉编译器构建系统JAVA原生接口头文件C库Math库P

Android触摸屏事件派发机制详解与源码分析二(ViewGroup篇)

1 背景 还记得前一篇<Android触摸屏事件派发机制详解与源码分析一(View篇)>中关于透过源码继续进阶实例验证模块中存在的点击Button却触发了LinearLayout的事件疑惑吗?当时说了,在那一篇咱们只讨论View的触摸事件派发机制,这个疑惑留在了这一篇解释,也就是ViewGroup的事件派发机制. PS:阅读本篇前建议先查看前一篇<Android触摸屏事件派发机制详解与源码分析一(View篇)>,这一篇承接上一篇. 关于View与ViewGroup的区别在前一篇的A

Android touch 事件传递机制

前言: (1)在自定义view的时候经常会遇到事件拦截处理,比如在侧滑菜单的时候,我们希望在侧滑菜单里面有listview控件,但是我们希望既能左右滑动又能上下滑动,这个时候就需要对触摸的touch事件进行拦截.这个时候我们就需要明白android touch 事件传递机制, (2)以前很多时候比较模糊,也许是网上看到也有很多事件传递的相关文章,但我看着头晕,解释不彻底,有的说得一半,总算不满足不满意,于是据我自己的理解来彻底的来整理下具体的是怎么个传递方式,分享给大家,希望大家看到有什么不对的

Android View 事件分发机制 源码解析 (上)

一直想写事件分发机制的文章,不管咋样,也得自己研究下事件分发的源码,写出心得~ 首先我们先写个简单的例子来测试View的事件转发的流程~ 1.案例 为了更好的研究View的事件转发,我们自定以一个MyButton继承Button,然后把跟事件传播有关的方法进行复写,然后添加上日志~ MyButton [java] view plain copy package com.example.zhy_event03; import android.content.Context; import andr

聊一聊Android的事件机制

侯 亮 1概述 在Android平台上,主要用到两种通信机制,即Binder机制和事件机制,前者用于跨进程通信,后者用于进程内部通信. 从技术实现上来说,事件机制还是比较简单的.从大的方面讲,不光是Android平台,各种平台的消息机制的原理基本上都是相近的,其中用到的主要概念大概有: 1)消息发送者: 2)消息队列: 3)消息处理循环. 示意图如下: 图中表达的基本意思是,消息发送者通过某种方式,将消息发送到某个消息队列里,同时还有一个消息处理循环,不断从消息队列里摘取消息,并进一步解析处理.

Android中多线程编程(四)AsyncTask类的详细解释(附源码)

Android中多线程编程中AsyncTask类的详细解释 1.Android单线程模型 2.耗时操作放在非主线程中执行 Android主线程和子线程之间的通信封装类:AsyncTask类 1.子线程中更新UI 2.封装.简化异步操作. 3.AsyncTask机制:底层是通过线程池来工作的,当一个线程没有执行完毕,后边的线程是无法执行的.必须等前边的线程执行完毕后,后边的线程才能执行. AsyncTask类使用注意事项: 1.在UI线程中创建AsyncTask的实例 2.必须在UI线程中调用As

【转】Android Touch事件传递机制解析

原文地址:http://www.cnblogs.com/runssnail/p/4250549.html 说明:本文在原文地址上有所改动 一.小故事 在讲正题之前我们讲一段有关任务传递的小故事,抛砖迎玉下: 话说一家软件公司,来一个任务,分派给了开发经理去完成 开发经理拿到,看了一下,感觉好简单,于是 开发经理:分派给了开发组长 开发组长:分派给了自己组员(程序员) 程序员:分派给了自己带的实习生. 实习生:好苦逼,无法分派,怎么办啊?只能自己干了 但是实习生能不能做好,有两种情况了. 情况一:

win phone 获取并且处理回车键事件

参考自:http://www.cnblogs.com/mohe/archive/2013/03/18/2966540.html 实用场景,比如输入帐号和密码啦,输入搜索关键字啦. protected override void OnKeyDown(KeyEventArgs e) { if (e.Key == Key.Enter) { MessageBox.Show("我是windows phone 回车键"); //代码处理,跳转到哪个页面 } } win phone 获取并且处理回车

Android 的网络编程

android的网络编程分为2种:基于socket的,和基于http协议的. 基于socket的用法 服务器端: 先启动一个服务器端的socket     ServerSocket svr = new ServerSocket(8989); 开始侦听请求 Socket s = svr.accept(); 取得输入和输出 DataInputStream dis = new DataInputStream(s.getInputStream()); DataOutputStream dos = new