前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Edittext监听动态改变

Edittext监听动态改变

作者头像
xiangzhihong
发布2018-01-26 20:14:51
1.3K0
发布2018-01-26 20:14:51
举报
文章被收录于专栏:向治洪向治洪

方法一:

???????? // 输入框限制输入字数

?? ???? editText.addTextChangedListener(new TextWatcher() {

?? ???? ??? private CharSequence temp;

?? ???? ??? private boolean isEdit = true;

?? ???? ??? private int selectionStart ;

?? ???????? private int selectionEnd ;

?? ???????? @Override

?? ???????? public void beforeTextChanged(CharSequence s, int arg1, int arg2,

?? ???????? ??? ??? int arg3) {

?? ???????? ??? temp = s;

?? ???????? }

?? ???????? @Override

?? ???????? public void onTextChanged(CharSequence s, int arg1, int arg2,

?? ???????? ??? ??? int arg3) {

?? ???????? }

?? ???? ??? @Override

?? ???? ??? public void afterTextChanged(Editable s) {

?? ???? ??? ???? selectionStart = editText.getSelectionStart();

?? ???????? ??? selectionEnd = editText.getSelectionEnd();

?? ???????? ??? Log.i("gongbiao1",""+selectionStart);

?? ???? ??? ??? if (temp.length() > Constant.TEXT_MAX) {

?? ???? ??? ??? ??? Toast.makeText(KaguHomeActivity.this,

?? ???????? ??? ??? ??? ??? R.string.edit_content_limit, Toast.LENGTH_SHORT)

?? ???????? ??? ??? ??? ??? .show();

?? ???? ??? ??? ??? s.delete(selectionStart-1, selectionEnd);

?? ???? ??? ??? ??? int tempSelection = selectionStart;

?? ???? ??? ??? ??? editText.setText(s);

?? ???? ??? ??? ??? editText.setSelection(tempSelection);

?? ???? ??? ??? }

?? ???? ??? }

?? ???? });

????? 方法二:

???????? 利用EditText可以设置filter的特性,自定义一个LengthFilter,当输入字数超过限制时 ,做出自定义的提示

????????? // 输入框限制输入字数

??? ??? InputFilter[] filters = new InputFilter[1];

??? ??? filters[0] = new InputFilter.LengthFilter(Constant.TEXT_MAX) {

??? ??? ??? @Override

??? ??? ??? public CharSequence filter(CharSequence source, int start, int end,

??? ??? ??? ??? ??? Spanned dest, int dstart, int dend) {

??? ??? ??? ??? if (source.length() > 0 && dest.length() == Constant.TEXT_MAX) {

??? ??? ??? ??? ??? if ((System.currentTimeMillis() - toastTime) > interval) {

??? ??? ??? ??? ??? ??? toastTime = System.currentTimeMillis();

??? ??? ??? ??? ??? ??? Toast

??? ??? ??? ??? ??? ??? ??? ??? .makeText(KaguHomeActivity.this,

??? ??? ??? ??? ??? ??? ??? ??? ??? ??? R.string.edit_content_limit,

??? ??? ??? ??? ??? ??? ??? ??? ??? ??? Toast.LENGTH_SHORT).show();

??? ??? ??? ??? ??? }

??? ??? ??? ??? }

??? ??? ??? ??? if (dest.toString().equals(

??? ??? ??? ??? ??? ??? getResources().getString(R.string.input_default_txt))) {

??? ??? ??? ??? ??? Bundle data = new Bundle();

??? ??? ??? ??? ??? data.putCharSequence("source", source);

??? ??? ??? ??? ??? Message message = textHandler.obtainMessage();

??? ??? ??? ??? ??? message.setData(data);

??? ??? ??? ??? ??? message.sendToTarget();

??? ??? ??? ??? }

??? ??? ??? ??? return super.filter(source, start, end, dest, dstart, dend);

??? ??? ??? }

??? ??? };

??? ??? editText.setFilters(filters);

private Handler textHandler = new Handler() {

??? ??? @Override

??? ??? public void handleMessage(Message msg) {

??? ??? ??? Bundle data = msg.getData();

??? ??? ??? CharSequence source = data.getCharSequence("source");

??? ??? ??? editText.setTextColor(Color.BLACK);

??? ??? ??? editText.setText(source);

??? ??? ??? editText.setSelection(source.length());

??? ??? }

??? };

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-12-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com