Android(安卓)android.text.TextWatcher详解
When an object of a type is attached to an Editable, its methods will be called when the text is changed.
当一个可编辑的对象的文本改变的时候,它的方法就会被调用。
此接口有三个方法
afterTextChanged(Editable s)
This method is called to notify you that, somewhere within s
, the text has been changed.
当s的某个位置的文本已经改变,这个方法会被调用
beforeTextChanged(CharSequence s, int start, int count, int after)
This method is called to notify you that, within s
, the count
characters beginning at start
are about to be replaced by new text with length after
.
在s中,当从start开始的count个字符将被长度为after的新文本替换时,这个方法会被调用
onTextChanged(CharSequence s, int start, int before, int count)
This method is called to notify you that, within s
, the count
characters beginning at start
have just replaced old text that had length before
.
在s中,当从start开始有count个字符替换长度为before的旧文本时,这个方法会被调用
下面是一个限制输入"."个数的例子
import android.app.Activity;import android.os.Bundle;import android.text.Editable;import android.text.TextWatcher;import android.util.Log;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity { EditText et_content; TextView tv_numOfChar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_content = (EditText)findViewById(R.id.et_content); tv_numOfChar = (TextView)findViewById(R.id.tv_numOfChar); et_content.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { Log.i("log","beforeTextChanged:" + s + "------" + start + "------" + after + "------"+ count); } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { Log.i("log","onTextChanged:" + s + "------" + start + "------"+ before+ "------" + count); if (et_content.getText().toString().indexOf(".") >= 0) { tv_numOfChar.setText("已经输入\".\"不能重复输入"); if (et_content.getText().toString().indexOf(".", et_content.getText().toString().indexOf(".") + 1) > 0) { et_content.setText(et_content.getText().toString().substring(0, et_content.getText().toString().length() - 1)); et_content.setSelection(et_content.getText().toString().length()); } } } @Override public void afterTextChanged(Editable s) { Log.i("log","afterTextChanged:" + s); } }); }}
更多相关文章
- Android(安卓)回调详解及简单实例
- android:configChanges="orientation|keyboardHidden"的使用
- Android(安卓)ArrayAdapter的使用
- android 调用 react-native方法
- Android定制出厂默认输入法(其他设置类似)
- android 调用相机拍照 并缩放切割图片
- 查看 apk 的信息
- EditText
- android 开发技巧(8)--格式化 TextView 的文本