在EditText中处理“Enter”
我想知道是否有办法处理用户在EditText
输入时按Enter键,类似onSubmit HTML事件。
还想知道是否有办法以“完成”按钮被标记为别的东西(例如“Go”)并且在单击时执行特定操作(再次像onSubmit)那样操纵虚拟键盘。
我想知道是否有办法处理用户在EditText中输入时按Enter键,类似onSubmit HTML事件。
是。
还想知道是否有办法以“完成”按钮被标记为别的东西(例如“Go”)并且在单击时执行特定操作(再次像onSubmit)那样操纵虚拟键盘。
也是。
您将需要在TextView
上查看android:imeActionId
和android:imeOptions
属性以及setOnEditorActionListener()
方法。
要将“完成”按钮的文本更改为自定义字符串,请使用:
mEditText.setImeActionLabel("Custom text", KeyEvent.KEYCODE_ENTER);
这就是你所做的。 它也隐藏在Android Developer的示例代码“蓝牙聊天”中。 用你自己的变量和方法替换说“example”的粗体部分。
首先,将您需要的内容导入主要“活动”中您希望返回按钮执行某些特殊操作的位置:
import android.view.inputmethod.EditorInfo;
import android.widget.TextView;
import android.view.KeyEvent;
现在,为你的返回键(在这里我使用exampleListener )创建一个TextView.OnEditorActionListener类型的变量;
TextView.OnEditorActionListener exampleListener = new TextView.OnEditorActionListener(){
然后,当按下返回按钮时,需要告诉听众两件事情。 它需要知道我们正在谈论的EditText(这里使用exampleView ),然后当按下Enter键时(这里是example_confirm() ),它需要知道该怎么做。 如果这是您Activity中的最后一个或唯一的EditText,它应该与您的Submit(或OK,Confirm,Send,Save等)按钮的onClick方法做同样的事情。
public boolean onEditorAction(TextView exampleView, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_NULL
&& event.getAction() == KeyEvent.ACTION_DOWN) {
example_confirm();//match this behavior to your 'Send' (or Confirm) button
}
return true;
}
最后,设置监听器(很可能在你的onCreate方法中);
exampleView.setOnEditorActionListener(exampleListener);
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;
}
});
链接地址: http://www.djcxy.com/p/24257.html