使用TextWatcher监听EditText变化
2024-10-14 17:35:33
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
private EditText mEditText; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.tv);
mEditText = (EditText) findViewById(R.id.et);
/**
* 监听EditText框中的变化
*/
mEditText.addTextChangedListener(new TextWatcher() {
private CharSequence temp;
private int editStart;
private int editEnd; /**
* 文本变化之前
* @param s
* @param start
* @param count
* @param after
*/
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
temp = s;
} /**
* 文本变化中
* @param s
* @param start
* @param before
* @param count
*/
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
mTextView.setText("输入的结果为:"+s);
} /**
* 文本变化之后
* @param s
*/
@Override
public void afterTextChanged(Editable s) {
editStart = mEditText.getSelectionStart();
editEnd = mEditText.getSelectionEnd();
if (temp.length() > 10) {//限制长度
Toast.makeText(MainActivity.this,
"输入的字数已经超过了限制!", Toast.LENGTH_SHORT)
.show();
s.delete(editStart - 1, editEnd);
int tempSelection = editStart;
mEditText.setText(s);
mEditText.setSelection(tempSelection);
} }
}); }
}
结果:
最新文章
- BZOJ4262: Sum
- python中利用logging包进行日志记录时的logging.level设置选择
- LINUX重启MYSQL的命令
- How To Set Up Apache with a Free Signed SSL Certificate on a VPS
- 【转】深入理解TextView实现Rich Text--在同一个TextView设置不同字体风格
- Xshell5最新版激活
- 2015前端各大框架比较(angular,vue,react,ant)
- eclipse运行内存不足解决办法
- 【模拟】HDU 5762 Teacher Bo
- Eclipse配置Tomcat服务器
- Kolakoski序列产生器
- Python 上下文管理器和else块
- mybatis的generator中xml配置问题
- [Vim]新建python文件自动添加python header
- IDEA项目找不到浏览器报错的情况
- 18.数组(一)之认识java数组
- Android 显示Dialog的同时自动弹出软键盘;
- UVA 11776 - Oh Your Royal Greediness! - [贪心/模拟]
- cygwin64安装wget和apt-cyg
- EF Core 2.1 支持数据库一对一关系