android 汉字个数,Android之监听文本框输入的文字个数并实时显示还可以输入的个数-->TextWatcher...

我们经常在新浪微博中看到,还可以输入多少字的功能。今天偶然间发现Android自己的API有一个专门监听文本变化的接口---TextWatcher . 那现在快来看看怎么用的吧。

//监听输入字数

etContent.addTextChangedListener(new TextWatcher() {

@Override

public void beforeTextChanged(CharSequence s, int start, int co unt,int after) {

}

@Override

public void onTextChanged(CharSequence s, int start, int before ,int count) {

mTitle = etContent.getText().toString();

leftTextNum = getLeftTextNum();

tvLeft.setText("还可以输入:" + leftTextNum + "个字");

}

@Override

public void afterTextChanged(Editable s) {

}

});

一般情况来说的话,当还可以输入的字数为0时,就不给输入了,别忘了可以给EditText设置一个属性叫android:maxLength=""哦。~~~

虽然这些东西比较简单,但是点点滴滴积累下来,终归用得到的。

Android Studio中,如果你想要实现在一个文本框EditText中,用户通过输入"-"来分隔数字,你可以使用自定义的TextWatcher监听器来跟踪文本框的变化。这里是一个简单的步骤说明: 1. **创建TextWatcher**: 创建一个实现了`TextWatcher`接口的内部类或者外部类实例,这个监听器会在文本框内容改变时触发。 ```java private TextWatcher numberSplitter = new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // 不做处理 } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // 当内容变化时检查是否包含 "-" } @Override public void afterTextChanged(Editable s) { if (s.toString().contains("-")) { try { String[] parts = s.toString().split("-"); // 这里可以处理每个部分的数字并存储或显示它们 } catch (NumberFormatException e) { // 如果输入的不是有效的数字格式,恢复默认或提示用户 s.clear(); s.append(""); } } } }; ``` 2. **添加监听器到EditText**: 在你的Activity或Fragment中,找到EditText,并将其TextWatcher设置为你刚才创建的那个。 ```java yourEditText.addTextChangedListener(numberSplitter); ``` 3. **处理数字**: 在`onTextChanged`方法中,你可以解析输入的部分,如果格式正确,就将它们作为数字操作;如果不正确,则清空输入显示错误信息。 4. **离开事件**: Android本身并没有提供离开EditText的直接事件,但你可以结合其他方式检测用户的离开行为,比如当焦点转移或键盘收起。例如,在API >= 19的情况下,可以使用`View.OnFocusChangeListener`: ```java yourEditText.setOnFocusChangeListener(new View.OnFocusChangeAdapter() { @Override public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus) { yourEditText.afterTextChanged(null); // 检查并处理离开事件 } } }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值