监听 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内容监听的更多相关文章

  1. Android addTextChangedListener(文本监听)参数解释及实现EditText字数监听

    由于最近做项目要检测EditText中输入的字数长度,从而接触到了Android中EditText的监听接口,TextWatcher.它有三个成员方法,第一个after很简单,这个方法就是在EditT ...

  2. onTextChanged参数解释及实现EditText字数监听

    http://www.picksomething.cn/?p=34 由于最近做项目要检测EditText中输入的字数长度,从而接触到了Android中EditText的监听接口,TextWatcher ...

  3. 安卓onTextChanged参数解释及实现EditText字数监听 Editable使用

    原作者部分修改部分 补充部分 补充部分2 补充部分3 补充部分4 Editable 尊重原作者:此篇文章是借鉴原作者地址 的博文 并进行修改和增加补充说明,我只是补充和修改: 我感觉这篇文章经过我的补 ...

  4. Android手机上监听短信的两种方式

    Android手机上监听短信有两种方式: 1. 接受系统的短信广播,操作短信内容. 优点:操作方便,适合简单的短信应用. 缺点:来信会在状态栏显示通知信息. AndroidManifest.xml: ...

  5. Android零基础入门第34节:Android中基于监听的事件处理

    原文:Android零基础入门第34节:Android中基于监听的事件处理 上一期我们学习了Android中的事件处理,也详细学习了Android中基于监听的事件处理,同时学会了匿名内部类形式,那么本 ...

  6. Android 手势水平监听判断

    package com.zihao.ui; import com.zihao.R; import android.os.Bundle; import android.app.Activity; imp ...

  7. Android中如何监听GPS开启和关闭

    转自 chenming 原文 Android中如何监听GPS开启和关闭   摘要: 本文简单总结了如何监听GPS开关的小技巧 有时需要监听GPS的开关(这种需求并不多见).实现的思路是监听代表 GPS ...

  8. 文件下载Controller,文件夹内容监听,文件上传,运行程序通过url实现文件下载

    文件下载Controller @RequestMapping("/fileDownLoad") public ResponseEntity<byte[]> fileDo ...

  9. android的电话监听

    android的电话监听 新建一个项目,结构图如下: PhoneService: package com.demo.tingdianhua; import android.app.Service; i ...

随机推荐

  1. 一模 (2) day2

    第一题: 题目大意:给出n种物品和每种物品的件数,求拿k件的方案数.N<=30 解题过程: 1.一开始总想着是组合数学的模型,结果怎么都想不出来..然后写了个爆搜,数据很弱,只有1个点超时. 2 ...

  2. MATLAB 函数

    MATLAB函数大全 1.常见 http://wenku.baidu.com/link?url=tPpwD7Ox_1sG-SQv_XdYszBAPY9LX_Zb_dde_5JeOiu7RwN_i14X ...

  3. RM报表 文本框 自动换行 相关代码

    procedure TRMCustomMemoView.WrapMemo1(aAddChar: Boolean); var lCurHeight, lOneLineHeight, lMaxWidth: ...

  4. 在网页中编辑报表的报表设计器Stimulsoft Reports Designer.Web报表控件

    Stimulsoft Reports Designer.Web报表控件是一款网页报表设计器.您想在网页中编辑您的报表吗?现在是可能的! Stimulsoft Reports Designer.Web ...

  5. Android google map 两点之间的距离

    在Android google map中,有时候会碰到计算两地的距离,下面的辅助类就可以帮助你计算距离: public class DistanceHelper { /** Names for the ...

  6. C语言中输入输出函数

    1.1.1 格式化输入输出函数Turbo C2.0 标准库提供了两个控制台格式化输入. 输出函数printf() 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据.pri ...

  7. 最好的Java IDE之争:Eclipse PK IntelliJ IDEA

    话说,好马配好鞍,一个好的工匠,必定要有一套好的工具才能打造出最好的工艺给大家.之前,Plumbr团队里的所有成员都使用Eclipse编辑器,而如今,大家都成为IntelliJ IDEA用户.那么,到 ...

  8. C# MP3文件属性读取

    using (TempFile tempFile = new TempFile()) { using (FileStream fs = new FileStream(tempFile.FileName ...

  9. Swift语言中如何使用JSON数据教程

    这是一篇翻译文章,原文出处:http://www.raywenderlich.com/82706/working-with-json-in-swift-tutorial Swift语言中如何使用JSO ...

  10. color 的一些处理

    1.UIImage转换成UIcolor cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@" ...