android判断edittext监听,android EditText监听和长度监测事件

packagecom.example.yanlei.yl2;importandroid.app.AlertDialog;importandroid.content.DialogInterface;importandroid.content.DialogInterface.OnKeyListener;importandroid.os.Bundle;importandroid.support.v7.app.AppCompatActivity;importandroid.app.Activity;importandroid.os.Bundle;importandroid.text.Editable;importandroid.text.TextWatcher;importandroid.util.Log;importandroid.widget.TextView;importandroid.widget.EditText;importandroid.view.View;importandroid.widget.Toast;public class MainActivity extendsAppCompatActivity {//定义TextView对象

privateTextView Tv;//定义EditText对象

privateEditText Et;

@Overridepublic voidonCreate(Bundle savedInstanceState) {//当创建此Activity的时候回调

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findView();

Et.addTextChangedListener(newEditChangedListener());

}private voidfindView() {//得到当前布局的控件对象

Tv =(TextView) findViewById(R.id.Tv);

Et=(EditText) findViewById(R.id.Et);

}//在xml中绑定的点击调用函数

public voidmyclick(View v) {//得到用户输入的用户名,得到长度

int len =Et.getText().toString().length();//根据输入的用户名的长度,做出对应的提示。

if (len > 5 && len < 9) {

Tv.setText("用户名合法,长度为:" +len);

}else{

Tv.setText("用户名长度非法,长度为:" +len);

}

}class EditChangedListener implementsTextWatcher {private CharSequence temp="";//监听前的文本

private int editStart;//光标开始位置

private int editEnd;//光标结束位置

private final int charMaxNum = 10;boolean DEBUG = false;

String TAG= "测试:";

@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, intafter) {if(DEBUG)

Log.i(TAG,"输入文本之前的状态");

temp=s;

}

@Overridepublic void onTextChanged(CharSequence s, int start, int before, intcount) {if(DEBUG)

Log.i(TAG,"输入文字中的状态,count是一次性输入字符数");

Tv.setText("还能输入" + (charMaxNum - s.length()) + "字符");

}

@Overridepublic voidafterTextChanged(Editable s) {if(DEBUG)

Log.i(TAG,"输入文字后的状态");try{if (temp.length() >charMaxNum) {

Toast.makeText(getApplicationContext(),"你输入的字数已经超过10了限制!", Toast.LENGTH_LONG).show();

}

}catch(Exception ex) {

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值