<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="28dp"
android:background="@color/white"
android:digits="qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890"
android:gravity="center_vertical"
android:hint="请输入"
android:maxLines="1"
android:textColor="#4a4a4a"
android:textColorHint="#cbcacb"
android:textSize="14sp" />
edit_text.addTextChangedListener(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) {
// 先移除当前监听,避免死循环。
edit_text.removeTextChangedListener(this);
String string = edit_text.getText().toString().toUpperCase();
edit_text.setText(string);
edit_text.setSelection(string.length());// 让光标定位最后位置。
//操作完当前显示内容之后,再添加监听。
edit_text.addTextChangedListener(this);
}
});
或是
TextWatcher accessoryTw, factoryTw;
ViewHolder(View view) {
ButterKnife.bind(this, view);
}
public TextWatcher getAccessoryTw() {
return accessoryTw;
}
public void setAccessoryTw(TextWatcher accessoryTw) {
this.accessoryTw = accessoryTw;
}
public TextWatcher getFactoryTw() {
return factoryTw;
}
public void setFactoryTw(TextWatcher factoryTw) {
this.factoryTw = factoryTw;
}
if(null != viewHolder.getAccessoryTw()){
viewHolder.nameE.removeTextChangedListener(viewHolder.getAccessoryTw());
viewHolder.setAccessoryTw(null);
}
viewHolder.nameE.setText(!TextUtils.isEmpty(dataBean.getAccessory_name()) ? dataBean.getAccessory_name() : "");
viewHolder.setAccessoryTw(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
dataBean.setAccessory_name(charSequence.toString());
}
@Override
public void afterTextChanged(Editable editable) {}
});
viewHolder.nameE.addTextChangedListener(viewHolder.getAccessoryTw());