android editText动态改变事件
2011-08-26 16:51
441 查看
android editText动态改变事件
方法一:// 输入框限制输入字数
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());
相关文章推荐
- android editText动态改变事件
- 学习笔记-Android之ListView随EditText输入内容动态改变
- android edittext编辑框光标改变事件
- Android 根据Edittext内容动态改变Listview显示的数据
- android 中动态监听Edittext控件内容长度 TextWatcher监听事件
- Android动态改变高度以及计算长度的EditText
- android TextView改变部分字体的颜色,大小,设置部分字体有点击事件
- android如何改变editText控件中部分文字的格式
- Android开发中EditText的点击Enter键焦点改变处理(获取焦点和失去焦点交互变化)
- Android之EditText文本框监听事件
- Android:一个TextView分段改变样式、添加监听事件的实现方式(类似朋友圈评论)
- android EditText监听事件处理方法
- Android EditText的输入监听,输入字符的动态获取
- android 中的EditText 键盘事件
- Android 动态显示隐藏EditText 输入框内容
- Android:EditText动态输入监听TextWatcher
- android 根据EditText 内容,改变TextView显示
- Android EditText中通过drawabeRight等添加了清空按钮 如何给按钮添加点击事件?
- Android EditText的输入监听,输入字符的动态获取
- android 动态修改EditText光标颜色