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 ...
随机推荐
- HDU 2676 Network Wars 01分数规划,最小割 难度:4
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1676 对顶点i,j,起点s=1,终点t=n,可以认为题意要求一组01矩阵use ...
- centos 升级 python后 python-setuptools pip 安装依赖报错
解决办法: $ wget https://svn.apache.org/repos/asf/oodt/tools/oodtsite.publisher/trunk/distribute_setup.p ...
- ROS程序编辑器
我找到的比较好用的ROS代码编辑器,对于emacs和vim等神级编辑器不能自动补全,对于我这种新手编译出错都是字母打错了, 因此果断回避,找到了一款叫做code blocks的编辑器,在软件中心就能下 ...
- 【C++】String类实现
//string.h #include <iostream> using namespace std; class String; istream& operator>> ...
- android 获取activity 的name
String contextString = this.toString();String name = contextString.substring(contextString.lastIndex ...
- vector中的元素删除
删除vector中的元素,最容易的方法就是使用vector的erase()函数. vector vec;for ( vector::iterator iter = vec.begin(); iter! ...
- shell指令expr和test指令
通过expr指令可以进行+.-.*.\.%等运算,但是有一点值得注意,使用乘法时,要在*前加上一个\符号. 通过test指令可以进行逻辑测试,进行测试的情况有四种: 1.整数测试 a.判断两个整数是否 ...
- C#基础--面向对象计算器
static void Main(string[] args) { //new个对象 Calculator cal = new Calculator(); //做事情 cal.Run(); } /// ...
- struts调用的几种方法
在Struts2中方法调用概括起来主要有三种形式 第一种方式:指定method属性 <action name="student" class="com.itmyho ...
- (转)HTML文档头部信息
原文:http://www.cnblogs.com/sunyunh/archive/2012/07/25/2609199.html HTML(3)HTML文档头部信息 <!DOCTYPE h ...