• android EditText监听和长度监测事件


    <?xml version="1.0" encoding="utf-8"?>
    <!-- 定义基础的LinearLayout布局 -->
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
        <!-- 定义EditText文本输入框 -->
        <EditText
            android:id="@+id/Et"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="请输入用户名:"/>
        <!-- 定义Button按钮屏幕区域 -->
        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:onClick="myclick"
            android:text="点击我,检测用户名合法性!"/>
    
        <!-- 定义TextView文本标签 -->
        <TextView
            android:id="@+id/Tv"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>
    
    </LinearLayout>
    package com.example.yanlei.yl2;
    
    import android.app.AlertDialog;
    import android.content.DialogInterface;
    import android.content.DialogInterface.OnKeyListener;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.app.Activity;
    import android.os.Bundle;
    import android.text.Editable;
    import android.text.TextWatcher;
    import android.util.Log;
    import android.widget.TextView;
    import android.widget.EditText;
    import android.view.View;
    import android.widget.Toast;
    
    
    public class MainActivity extends AppCompatActivity {
        //定义TextView对象
        private TextView Tv;
        //定义EditText对象
        private EditText Et;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            //当创建此Activity的时候回调
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            findView();
            Et.addTextChangedListener(new EditChangedListener());
        }
    
        private void findView() {
            // 得到当前布局的控件对象
            Tv = (TextView) findViewById(R.id.Tv);
            Et = (EditText) findViewById(R.id.Et);
        }
    
        //在xml中绑定的点击调用函数
        public void myclick(View v) {
            //得到用户输入的用户名,得到长度
            int len = Et.getText().toString().length();
            //根据输入的用户名的长度,做出对应的提示。
            if (len > 5 && len < 9) {
                Tv.setText("用户名合法,长度为:" + len);
            } else {
                Tv.setText("用户名长度非法,长度为:" + len);
            }
        }
    
        class EditChangedListener implements TextWatcher {
            private CharSequence temp="";//监听前的文本
            private int editStart;//光标开始位置
            private int editEnd;//光标结束位置
            private final int charMaxNum = 10;
            boolean DEBUG = false;
            String TAG = "测试:";
    
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                if (DEBUG)
                    Log.i(TAG, "输入文本之前的状态");
                temp = s;
            }
    
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if (DEBUG)
                    Log.i(TAG, "输入文字中的状态,count是一次性输入字符数");
                Tv.setText("还能输入" + (charMaxNum - s.length()) + "字符");
    
            }
            @Override
            public void afterTextChanged(Editable s) {
                if (DEBUG)
                    Log.i(TAG, "输入文字后的状态");
                try {
    
                    if (temp.length() > charMaxNum) {
                        Toast.makeText(getApplicationContext(), "你输入的字数已经超过10了限制!", Toast.LENGTH_LONG).show();
    
                    }
                } catch (Exception ex) {
    
                }
    
            }
    
        }
    }
  • 相关阅读:
    openfiler的介绍与使用
    linux磁盘修复(home或者其他目录无法进入,系统进入emergency mode)
    安装centos系统时出现dracut-initqueue time out 报错
    Linux中sz与rz命令
    /etc/passwd与/etc/shadow
    两台设备做DNS主从同步部署(含正向解析与方向解析)
    通过xftp传输文件失败的解决方法
    /etc/hosts与/etc/resolv.conf区别
    /etc/nsswitch.conf配置文件--服务搜索顺序
    docker学习笔记
  • 原文地址:https://www.cnblogs.com/gisoracle/p/5012582.html
Copyright © 2020-2023  润新知