zoukankan      html  css  js  c++  java
  • 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("您正在输入......
    当前光标处在第 " + start
                                +" 个位置
    您选择处理了 " + before + " 个字符
    您这次输入的词语有 "
                                + count + " 个字符");
                    }
                    
                }
                
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count,
                                int after) {
                    /*++这里的count树枝上是和onTextChanged()里的before一样的
                     * after树枝上是和onTextChanged()里的count一样的 ++*/
                    if(null != text1_){
                        text1_.setText("您正在输入......
    当前光标处在第 " + start
                                +" 个位置
    您选择处理了 " + count + " 个字符
    您这次输入的词语有 "
                                + after + " 个字符");
                    }
                }
                
                @Override
                public void afterTextChanged(Editable s) {
                    /*++这里显示出输入的字符串++*/
                    if(null != text2_){
                        text2_.setText(s);
                    }
                }
                
        });
    
        }
    }

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

  • 相关阅读:
    设计模式学习--面向对象的5条设计原则之单一职责原则--SRP
    设计模式学习--面向对象的5条设计原则(转)
    oracle 存储过程创建报错 Procedure created with compilation errors
    查看临时表空间占用最多的用户与SQL
    查看表空间文件以及利用率、修改、删除表空间文件大小
    aliyun阿里云alibabaMaven仓库地址——加速你的maven构建
    快速配置java环境变量
    oracle 月份中日的值必须介于 1 和当月最后一日之间
    Oracle 修改dmp的表空间
    oracle 空表导出dmp会报错
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4262935.html
Copyright © 2011-2022 走看看