Android EditText内容监听
监听 EditText的内容变化,作出对应的处理。

MainActivity.class
package com.example.edittextdemo; import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView; public class MainActivity extends Activity {
EditText edit_phone;
Button btn_next;
String okdata;
TextView monitor_edit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText edit_Id = (EditText) findViewById(R.id.edit_Id);
btn_next = (Button) findViewById(R.id.btn_next);
monitor_edit = (TextView) findViewById(R.id.monitor_edit);
btn_next.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
if (!isId(okdata)) {
monitor_edit.setText("请输入正确的身份证号!");
}
}
});
// EditText焦点的监听
edit_Id.setOnFocusChangeListener(new OnFocusChangeListener() { @Override
public void onFocusChange(View v, boolean hasFocus) {
// 当hasFocus = true 是获取焦点
if (!hasFocus) {
if (!isId(okdata)) {
monitor_edit.setText("请输入正确的身份证号!");
}
}
}
});
// 对EditText内容的实时监听
edit_Id.addTextChangedListener(new TextWatcher() { // 第二个执行
@Override
public void onTextChanged(CharSequence s, int start, int before,int count) {
System.out.println("onTextChanged:" + "start:" + start + "before:" + before + "count:" + count);
} // 第一个执行
@Override
public void beforeTextChanged(CharSequence s, int start, int count,int after) {
System.out.println("beforeTextChanged:" + "start:" + start + "count:" + count + "after:" + after);
} // 第三个执行
@Override
public void afterTextChanged(Editable s) { // Edittext中实时的内容
System.out.println("afterTextChanged:" + s);
okdata = s.toString();
if (isId(s.toString())) {
monitor_edit.setText("正确!");
}else {
monitor_edit.setText("请输入正确的身份证号!");
} }
});
} /**
* 是否为身份证
*
* @param idStr
* @return
*/
public static boolean isId(String idStr) {
String regex = "^[0-9]{17}[0-9|xX]{1}$";
if (idStr == null || "".equals(idStr.trim())) {
return false;
} else if (idStr.matches(regex)) {
return true;
} return false;
}
}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" > <EditText
android:id="@+id/edit_Id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:hint="输入身份证号" /> <TextView
android:id="@+id/monitor_edit"
android:layout_width="match_parent"
android:layout_height="20dp"
android:textColor="#FF0000" /> <EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="19dp"
android:background="@null"
android:hint="输入姓名" /> <Button
android:id="@+id/btn_next"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="下一步(模仿)" /> </LinearLayout>
Android EditText内容监听的更多相关文章
- Android addTextChangedListener(文本监听)参数解释及实现EditText字数监听
由于最近做项目要检测EditText中输入的字数长度,从而接触到了Android中EditText的监听接口,TextWatcher.它有三个成员方法,第一个after很简单,这个方法就是在EditT ...
- onTextChanged参数解释及实现EditText字数监听
http://www.picksomething.cn/?p=34 由于最近做项目要检测EditText中输入的字数长度,从而接触到了Android中EditText的监听接口,TextWatcher ...
- 安卓onTextChanged参数解释及实现EditText字数监听 Editable使用
原作者部分修改部分 补充部分 补充部分2 补充部分3 补充部分4 Editable 尊重原作者:此篇文章是借鉴原作者地址 的博文 并进行修改和增加补充说明,我只是补充和修改: 我感觉这篇文章经过我的补 ...
- Android手机上监听短信的两种方式
Android手机上监听短信有两种方式: 1. 接受系统的短信广播,操作短信内容. 优点:操作方便,适合简单的短信应用. 缺点:来信会在状态栏显示通知信息. AndroidManifest.xml: ...
- Android零基础入门第34节:Android中基于监听的事件处理
原文:Android零基础入门第34节:Android中基于监听的事件处理 上一期我们学习了Android中的事件处理,也详细学习了Android中基于监听的事件处理,同时学会了匿名内部类形式,那么本 ...
- Android 手势水平监听判断
package com.zihao.ui; import com.zihao.R; import android.os.Bundle; import android.app.Activity; imp ...
- Android中如何监听GPS开启和关闭
转自 chenming 原文 Android中如何监听GPS开启和关闭 摘要: 本文简单总结了如何监听GPS开关的小技巧 有时需要监听GPS的开关(这种需求并不多见).实现的思路是监听代表 GPS ...
- 文件下载Controller,文件夹内容监听,文件上传,运行程序通过url实现文件下载
文件下载Controller @RequestMapping("/fileDownLoad") public ResponseEntity<byte[]> fileDo ...
- android的电话监听
android的电话监听 新建一个项目,结构图如下: PhoneService: package com.demo.tingdianhua; import android.app.Service; i ...
随机推荐
- SQL SERVER 创建作业
),, , , , , ),SERVERPROPERTY(N, , , ...
- java web 之 web.xml篇
web.xml文件 标签: 1. <web-app> 顶层标签,所有web.xml必须包含该标签.在该标签中,描述了当前Servlet版本以及其他一些信息. 2. <servlet& ...
- AS3事件流机制
事件流: 显示对象,深度 MouseEnabled,MouseChildren:显示对象,同层次(父容器为同一对象)遮挡问题
- cpio的简单使用
有如下文件 # file boot.kylin boot.kylin: ASCII cpio archive (SVR4 with no CRC) extract: # cpio -i <boo ...
- namenode 和datanode无法启动,错误:FSNamesystem initialization failed. datanode.DataNode: Incompatible namespaceIDs
问题一: namenode无法启动,查看日志,错误信息如下: org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem ini ...
- Centos 6 安装 epel yum库
1.获得epel库安装rpm包 wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm 2.安装获得的r ...
- C++ primer的第二章的主要内容
这第二章主要是介绍了C++中基本的内置数据类型:整型与浮点型.介绍了什么是变量的过程中了解到了左值与右值的概念.左值是可以出现在赋值语句的左边或者右边,也就是说可以放在等号的左右两边,而右值只能是出现 ...
- GCD的用法
单例的实现 + (BindingRedResourceWIndow *)sharedInstance { static id sharedInstance = nil; static dispatch ...
- libimobiledevice安装步骤
https://github.com/libimobiledevice/libimobiledevice libimobiledevice安装指南,你还不知道libimobiledevice为何物,赶 ...
- EasyUI 验证框使用方法
使用过程中的一积累,备查. EasyUI 验证框使用方法://***************************missingMessage:未填写时显示的信息validType:验证类型见下示例 ...