EditText的监听器和自定义回车事件

我们一般是监听EditText的状态,看EditText中是不是有文字,根据有无进行不同的操作。

     // 给editText添加监听器
        editText.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // 输入过程中,还在内存里,没到屏幕上
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                // 在输入之前会触发的
            }

            @Override
            public void afterTextChanged(Editable s) {
                // 输入完将要显示到屏幕上时会触发
                boolean isEmpty = s.toString().trim().isEmpty();
            }
        });

如果想要定义回车键事件,也需要监听按键,然后进行处理。这里需要注意的是必须两个条件同时满足,否则会出现执行两次的错误。

     /**
         * 设置发送消息的按钮和输入框 按下回车键,发送消息
         */
        editText = (EditText) findViewById(R.id.conversation_editText);
        editText.setOnKeyListener(new OnKeyListener() {

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                // 这两个条件必须同时成立,如果仅仅用了enter判断,就会执行两次
                if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) {
                    // 执行发送消息等操作            return true;
                }
                return false;
            }
        });
时间: 2024-07-28 13:28:53

EditText的监听器和自定义回车事件的相关文章

创建自定义的事件接收器-Semantic Logging

创建自定义的事件接收器 Semantic Logging Application Block提供了大量的事件接收器,如Rolling Flat File,SQL Database, 云存储接收器等.这些接收器都实现了IObservable<EventEntry>接口. 有时这些并不能很好的满足客户需求,这时就需要定制事件接收器,比如邮件接收器.短信接收器等. 下面介绍以下如何定制邮件接收器,在特定的事件发生时自动发送邮件给指定的客户. 本文介绍了以下主题: 创建自定义接收器 在进程内使用自定义

ExtJS要利用观察者模式 去实现自定义的事件

1 // 要利用观察者模式 去实现自定义的事件 2 3 4 //1:由于浏览器他自己能定义内置的事件(click/blur...) 5 // 我们也应该有一个类似于浏览器这样的类,这个类 自己去内部定义一些事件(自定义事件) 6 var Observable = function(){ 7 //承装自己所定义的事件类型的 8 this.events = ['start','stop']; 9 //我们应该设计一种数据类型,这种数据类型就可以去维护自定义事件类型 和 和相关绑定函数的关系,结构如下

easyui-combobox绑定回车事件注意事项

回车事件的定义的位置必须是easyui-combobox数据加载的后面,才有效果. HTML文件: <select id="aucBrandNo" class="easyui-combobox" name="aucBrandNo" style="width: 160px;" data-options="required:true,onHidePanel:function(){validateComboboxIn

WPF自定义路由事件

一 概要 本文通过实例演示WPF自定义路由事件的使用,进而探讨了路由事件与普通的CLR事件的区别(注:"普通的CLR事件"这个说法可能不太专业,但是,我暂时也找不到什么更好的称呼,就这么着吧,呵呵.)(扩展阅读:例说.NET事件的使用). 二 实例演示与说明 1 新建DetailReportEventArgs类,该类派生自RoutedEventArgs类,RoutedEventArgs类包含与路由事件相关的状态信息和事件数据.DetailReportEventArgs类中定义了属性Ev

AngularJs 相应回车事件

最近做项目,要用到AngularJs,之前也有用过一点点,但仅限于数据的绑定,这次项目要整个前端需要使用这个框架,可能是不熟悉的原因,感觉这代码搞起来非常的不便利,:现总结一个响应回车事件: <!doctype html> <html> <head> <meta charset="utf-8"> <title>test</title> <script src="http://apps.bdimg.c

js回车事件

回车事件使用的是HTML的Event对象,通过keyCode推断被敲击的键. <intput type="text" onkeydown="Click()"> <script type="text/javascript"> function Click(){ if(event.keyCode == 13){ //按下回车键 //do something } } </script> 或者: <input t

原 JS监听回车事件

原 JS监听回车事件 发表于2年前(2014-06-04 10:16)   阅读(6101) | 评论(0) 11人收藏此文章, 我要收藏 赞0 1月16日厦门 OSC 源创会火热报名中,奖品多多哦   JS监听某个输入框 ? 1 2 3 4 5 6 7 //回车事件绑定     $('#search_input').bind('keyup', function(event) {         if (event.keyCode == "13") {             //回车

20140527-在jQuery中设置文本框回车事件

20140527-在jQuery中设置文本框回车事件 该代码要完成的效果是,用户在文本框输入完毕以后,按下回车键,立即触发"搜索"的单击事件. 例如: $("#search_user_name").keydown(function (e) {         // search_user_name为文本框ID         var curKey = e.which;         if (curKey == 13) {             // search

js实现标签绑定回车事件

给一个input 绑定一个回车事件, 如搜索框 输入内容后敲回车键执行某个事件 <input id="freeText" type="text" value=""> $("#freeText").keypress(function (evt) { evt = (evt) ? evt : ((window.event) ? window.event : ""); var key = evt.key