监听文本框的文字变化

    xiaoxiao2026-08-24  5

    public class MainActivity extends Activity {           private EditText editText;         private TextView tip;         private final int charMaxNum = 10; // 允许输入的字数           @Override         protected void onCreate(Bundle savedInstanceState) {                super.onCreate(savedInstanceState);                setContentView(R.layout.activity_main);                init();         }           private void init() {                editText = (EditText) findViewById(R.id.main_et);                editText.addTextChangedListener(new EditChangedListener());                               tip = (TextView) findViewById(R.id.main_tv);                tip.setText(0/+charMaxNum);         }           class EditChangedListener implements TextWatcher {                private CharSequence temp; // 监听前的文本                private int editStart; // 光标开始位置                private int editEnd; // 光标结束位置                               // 输入文本之前的状态                @Override                public void beforeTextChanged(CharSequence s, int start, int count,int after) {                        temp = s;                }                  // 输入文字中的状态,count是一次性输入字符数                @Override                public void onTextChanged(CharSequence s, int start, int before, int count) { //                     if (charMaxNum - s.length() <= 5) { //                             tip.setText(还能输入 + (charMaxNum - s.length()) + 字符); //                     }                        tip.setText((s.length()) + / + charMaxNum);                }                  // 输入文字后的状态                @Override                public void afterTextChanged(Editable s) {                        /** 得到光标开始和结束位置 ,超过最大数后记录刚超出的数字索引进行控制 */                        editStart = editText.getSelectionStart();                        editEnd = editText.getSelectionEnd();                        if (temp.length() > charMaxNum) { //                             Toast.makeText(getApplicationContext(), 最多输入10个字符, Toast.LENGTH_SHORT).show();                                s.delete(editStart - 1, editEnd);                                editText.setText(s);                                editText.setSelection(s.length());                        }                }         }; }
    转载请注明原文地址: https://ju.6miu.com/read-1311498.html
    最新回复(0)