Android 监听EditView中的文本改变事件

android中的编辑框EditText也比较常用,那比如在搜索框中,没输入一个字,下面的搜索列表就显示有包含输入关键字的选项,这个输入监听怎么实现的呢?

我们可以建一个例子,效果图如下:

我们可以监听光标处在哪个位置,选择了几个字符并处理,输入了几个字符

先新建布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/af">

    <!-- 上下滚动 -->

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >

            <!-- 编辑框 -->

            <EditText
                android:id="@+id/id_edittext_1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/alert_light"
                android:textSize="10sp"
                android:textColor="#ffff"
                />

            <TextView
                android:id="@+id/id_textview"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="#ffff"
                />

            <TextView
                android:id="@+id/id_textview_1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/hah"
                android:textColor="#f000"
                />

            <TextView
                android:id="@+id/id_textview_2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/hah"
                android:textColor="#f000"
                />

        </LinearLayout>
    </ScrollView>

</LinearLayout>

然后在代码中对编辑框绑定输入监听事件:

public class EditTextTestActivity extends Activity {
    /**编辑框*/
    private EditText edit1_;
    /**文本*/
    private TextView text_;
    private TextView text1_;
    private TextView text2_;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        /*设置当前页面的布局*/
        setMyLayout();
    }

    /**
     * 设置当前页面的布局
     */
    private void setMyLayout(){
        /*取得文本*/
        text_ = (TextView)findViewById(R.id.id_textview);
        text1_ = (TextView)findViewById(R.id.id_textview_1);
        text2_ = (TextView)findViewById(R.id.id_textview_2);

        /*取得编辑框*/
        edit1_ = (EditText)findViewById(R.id.id_edittext_1);
        /*监听 编辑框中的文本改变事件*/
        edit1_.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                /*++ 文本每次改变就会跑这个方法 ++*/
                if(null != text_){
                    text_.setText("您正在输入......\n当前光标处在第 " + start
                            +" 个位置\n您选择处理了 " + before + " 个字符\n您这次输入的词语有 "
                            + count + " 个字符");
                }

            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                            int after) {
                /*++这里的count树枝上是和onTextChanged()里的before一样的
                 * after树枝上是和onTextChanged()里的count一样的 ++*/
                if(null != text1_){
                    text1_.setText("您正在输入......\n当前光标处在第 " + start
                            +" 个位置\n您选择处理了 " + count + " 个字符\n您这次输入的词语有 "
                            + after + " 个字符");
                }
            }

            @Override
            public void afterTextChanged(Editable s) {
                /*++这里显示出输入的字符串++*/
                if(null != text2_){
                    text2_.setText(s);
                }
            }

    });

    }
}

源代码:http://download.csdn.net/detail/zoeice/4399601

时间: 2024-12-18 17:11:42

Android 监听EditView中的文本改变事件的相关文章

android监听虚拟键盘隐藏和显示事件

刚开始在onconfigurationChanged中监听,结果发现该方法在configuration变化即配置文件发生变化时才会被调用,如横竖屏切换,android重新载入配置文件时.而键盘隐藏不会触发该方法. 后来采用如下方法完美解决了键盘隐藏监听事件. //该Activity的最外层Layout finalView activityRootView = findViewById(R.id.activityRoot); //给该layout设置监听,监听其布局发生变化事件 activityR

Android 监听 Android中监听系统网络连接打开或者关闭的实现代码

本篇文章对Android中监听系统网络连接打开或者关闭的实现用实例进行了介绍.需要的朋友参考下 很简单,所以直接看代码 复制代码 代码如下: package xxx; import android.content.BroadcastReceiver;  import android.content.Context;  import android.content.Intent;  import android.net.ConnectivityManager;  import android.ne

android 监听网络状态的变化及实战

android 监听网络状态的变化及实际应用 转载请注明博客地址:http://blog.csdn.net/gdutxiaoxu/article/details/53008266 平时我们在请求错误的情况下,通常会进行处理一下,一般来说,主要分为两方面的错误 - 没有网络的错误 - 在有网络的情况下,我们客户端的错误或者服务器端的错误 今天这篇博客主要阐述以下问题 怎样监听网络状态的变化,包括是否打开WiFi,否打开数据网络,当前连接的网络是否可用 网络没有打开情况下的处理,如弹出对话框,跳转到

Android 监听文件夹

在一次Android和pc端的通讯过程中,我们放弃了adb forward来实现socket通讯.而是使用adb push文件,我监听文件夹... 都学习一下很有必要 本篇简单Android监听文件夹的方式FileObserver. FileObserver简介 Android.os包下的FileObserver类是一个用于监听文件访问.创建.修改.删除.移动等操作的监听器,基于Linux的INotify. FileObserver是个抽象类,必须继承它才能使用.每个FileObserver对象

【转】Android开发20——单个监听器监听多个按钮点击事件

原文网址:http://woshixy.blog.51cto.com/5637578/1093936 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://woshixy.blog.51cto.com/5637578/1093936 一.单个按钮点击事件的监听 方法一 /** * 从网络上获取图片 * * @author 徐越 * */ public class MainActivity extends Activity { pri

Android监听ScrollView滑动到顶端和底部

MainActivity如下: package cn.testscrollview; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ScrollView; import android.app.Activity; /** * Demo描述: * 监

js 实时监听input中值变化

js 实时监听input中值变化 分类: Javascript2014-05-11 11:13 849人阅读 评论(0) 收藏 举报 [html] view plaincopyprint? <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>RunJS

Android 监听锁屏/开屏事件

1. 两种方案 (1) 监听BroadcastReceiver (2)获取PowerManager事件 2.  BroadcastReceiver 2.1. 事件 总共有3个事件: Intent.ACTION_SCREEN_ON : 屏幕点亮 Intent.ACTION_SCREEN_OFF :屏幕关闭 Intent.ACTION_USER_PRESENT: 用户解锁 2.2. 权限 监听用户解锁需要在AndroidManifest中注册权限 <uses-permission android:n

Fragment-如何监听fragment中的回退事件与怎样保存fragment状态

一.如何监听Fragment中的回退事件 1.问题阐述 在Activity中监听回退事件是件非常容易的事,因为直接重写onBackPressed()函数就好了,但当大家想要监听Fragment中的回退事件时,想当然的也想着重写onBackPressed()方法,这时候你会发现:Fragment中根本就没有onBackPressed()方法给你重写.这可怎么破! 想想,在前面的例子中,我们在Activity的一个fragment_container里依次Add进fragment1,fragment