Java 你怎么听文本?
我有一个Java 你怎么听文本?,java,android,android-edittext,Java,Android,Android Edittext,我有一个EditText。当用户在更改EditText时按Enter键时,我想做点什么。我该怎么做 最简单的方法是: final EditText edittext = (EditText) findViewById(R.id.edittext); edittext.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { // If
EditText
。当用户在更改EditText
时按Enter键时,我想做点什么。我该怎么做
最简单的方法是:
final EditText edittext = (EditText) findViewById(R.id.edittext);
edittext.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// If the event is a key-down event on the "enter" button
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {
// Perform action on key press
Toast.makeText(HelloFormStuff.this, edittext.getText(), Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
为此,您需要使用TextWatcher。下面是一个关于如何使用和Android API的示例。首先,创建一个
OnEditorActionListener
(例如,作为私有实例变量):
然后,设置侦听器(即在onCreate
方法中):
文本监视程序的示例代码
your_edittext.addTextChangedListener(new InputValidator());
private class InputValidator implements TextWatcher {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
}
}
另一种选择是:
your_edittext.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
}
});
不,它不起作用。当用户在编辑文本中键入一些文本时,我需要听键盘上的ENTER键。我不在乎用户何时会触摸屏幕。哦,是的!非常感谢你。这是一个很好的决定。在
BluetoothChat
示例代码中也隐藏了一个如何做到这一点的示例:很抱歉,您的方法更好。谢谢)TextWatcher更重,这是只听回车键时的正确答案。好的,我如何比较字符序列和回车键?
EditText mEditText = (EditText) findViewById(...);
mEditText.setOnEditorActionListener(mEnterListener);
your_edittext.addTextChangedListener(new InputValidator());
private class InputValidator implements TextWatcher {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
}
}
your_edittext.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
}
});