我们一般是监听EditText的状态,看EditText中是不是有文字,根据有无进行不同的操作。
//给editText添加监听器 editText.addTextChangedListener(newTextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, intcount) { //输入过程中,还在内存里,没到屏幕上 } @Override public void beforeTextChanged(CharSequence s, int start, int count, intafter) { //在输入之前会触发的 } @Override public voidafterTextChanged(Editable s) { //输入完将要显示到屏幕上时会触发 boolean isEmpty =s.toString().trim().isEmpty(); } });
如果想要定义回车键事件,也需要监听按键,然后进行处理。这里需要注意的是必须两个条件同时满足,否则会出现执行两次的错误。
/** * 设置发送消息的按钮和输入框 按下回车键,发送消息 */ editText =(EditText) findViewById(R.id.conversation_editText); editText.setOnKeyListener(newOnKeyListener() { @Override public boolean onKey(View v, intkeyCode, KeyEvent event) { //这两个条件必须同时成立,如果仅仅用了enter判断,就会执行两次 if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() ==KeyEvent.ACTION_DOWN) { //执行发送消息等操作
return true; } return false; } });