在EditText中处理“Enter”

我想知道是否有办法处理用户在EditText输入时按Enter键,类似onSubmit HTML事件。

还想知道是否有办法以“完成”按钮被标记为别的东西(例如“Go”)并且在单击时执行特定操作(再次像onSubmit)那样操纵虚拟键盘。


我想知道是否有办法处理用户在EditText中输入时按Enter键,类似onSubmit HTML事件。

是。

还想知道是否有办法以“完成”按钮被标记为别的东西(例如“Go”)并且在单击时执行特定操作(再次像onSubmit)那样操纵虚拟键盘。

也是。

您将需要在TextView上查看android:imeActionIdandroid: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

上一篇: Handle "Enter" in an EditText

下一篇: Stop ScrollView from setting focus on EditText