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) { } } }
}
android EditText监听和长度监测事件的更多相关文章
- Android如何监听蓝牙耳机的按键事件(转)
源: Android如何监听蓝牙耳机的按键事件 写在前面: 直接想要代码很简单,你直接把滚动条拉到最底端就可以看到.如果想要十分地了解为什么,那就按照我规划的一步一步来理解.以下测试环境以手头上有的「 ...
- Android怎样监听蓝牙耳机的按键事件
Android怎样监听蓝牙耳机的按键事件 写在前面: 直接想要代码非常easy,你直接把滚动栏拉到最底端就能够看到.假设想要十分地了解为什么,那就依照我规划的一步一步来理解.下面測试环境以手头上有的「 ...
- Android如何监听蓝牙耳机的按键事件
写在前面: 直接想要代码很简单,你直接把滚动条拉到最底端就可以看到.如果想要十分地了解为什么,那就按照我规划的一步一步来理解.以下测试环境以手头上有的「Bluedio + 红米手机」. 1.蓝牙耳机的 ...
- android editText 监听事件
在软键盘中注意 在监听的 edittext中 使用android:imeOptions属性的时候,一定要对EditText设置 android:inputType 或者 设置 android:sing ...
- android EditText监听事件及参数详解
editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence ...
- xamarin android如何监听单击事件
在xamarin android单击事件是最基础的事情,看过菜鸟上的android教程时,java写的都是监听事件,为一个按钮,单选按钮.多选按钮的单击事件有三种,前面两种用的非常普遍,也很简易,我这 ...
- js判断是否安装某个android app,没有安装下载该应用(websocket通信,监听窗口失去焦点事件)
现在经常有写场景需要提示用户下载app, 但是如果用户已经安装,我们希望是直接打开app. 实际上,js是没有判断app是否已经安装的方法的,我们只能曲线救国. 首先,我们需要有call起app的sc ...
- Android实现监听控件点击事件
Android实现监听控件点击事件 引言 这篇文章主要想写一下Android实现监听点击事件的几种方法,Activity和Fragment实现起来有些方法上会有些不同,这里也略做介绍. 最近一直在忙一 ...
- Android ScrollView监听滑动到顶部和底部的两种方式(你可能不知道的细节)
Android ScrollView监听滑动到顶部和底部,虽然网上很多资料都有说,但是不全,而且有些细节没说清楚 使用场景: 1. 做一些复杂动画的时候,需要动态判断当前的ScrollView是否滚动 ...
随机推荐
- [LUOGU]P1443 马的遍历
题目描述 有一个n*m的棋盘(1< n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数据,棋盘的大小和马的坐标 输 ...
- [LUOGU] P1111 修复公路
题目背景 A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 题目描述 给出A地区的村庄数N,和公路数M,公路是双向的.并告诉你每条公路的连着哪两个村庄,并告诉你什么时 ...
- Python可变与不可变类型及垃圾回收机制
1. 可变与不可变类型 1.1 可变类型 在id不变的情况下,value可以改变,则称之为可变类型.列表.字典与集合是可变的. l1 = [,,,,] print(id(l1)) l1[] = #改 ...
- docker系列之镜像服务器
docker 的镜像服务器 docker-registry 是 docker 项目的组成部分. 前面在谈 docker 的命令时, 它的 pull/push 命令就是和镜像服务器打交道. 并且, do ...
- vs实用插件
Live Share 强烈推荐的一款插件,能在VS程序中打开文件并且显示他的效果.非常非常实用!,具体功能介绍在你搜索该插件时候有说明,非常非常好用的一款插件! 后续插件推荐转载参考与其他博主 1.C ...
- Python把类当做字典来访问
定义一个类将它实例化,我们可以通过obj.属性来访问类的属性,如果想获取类的所有实例变量,我们可以使用obj.__dict__来访问,如下: class A: def __init__(self): ...
- Python模块--time&datetime
一.Python中时间的表示方式 1.时间戳 如 1552623413.043036 2.格式化的时间字符串 如 2015-12-02 3.struct_time 是一个元组 共有九个元素 二. ...
- django基础(web框架,http协议,django安装)
学习Django之前我们先来看什么是OSI七层模型: 应用层 表示层 应用层(五层模型中把这三层合成一个应用层) http协议 会话层 传输层 提供端口对 ...
- Spring 常见错误解决方案记录
错误提示: 严重: Servlet.service() for servlet [datasync.controller.manager.SettingServlet] in context with ...
- python基础-对象
1. 对象:一组数据和操作数据方法的集合 >>> class Person(object): ... def __init__(self,name): ... ...