首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何处理ImeOptions的“完成”按钮单击?

如何处理ImeOptions的“完成”按钮单击?
EN

Stack Overflow用户
提问于 2010-01-05 13:31:05
回答 6查看 224.7K关注 0票数 216

我有一个EditText,其中我设置了以下属性,以便当用户单击EditText时可以在键盘上显示done按钮。

代码语言:javascript
复制
editText.setImeOptions(EditorInfo.IME_ACTION_DONE);

当用户单击屏幕键盘上的done按钮(完成键入)时,我想要更改RadioButton状态。

从屏幕键盘点击完成按钮时,如何跟踪完成按钮?

EN

回答 6

Stack Overflow用户

发布于 2016-10-24 16:13:27

代码语言:javascript
复制
<EditText android:imeOptions="actionDone"
          android:inputType="text"/>

Java代码是:

代码语言:javascript
复制
edittext.setOnEditorActionListener(new OnEditorActionListener() { 
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            Log.i(TAG,"Here you can write the code");
            return true;
        }    
        return false;
    }
});
票数 47
EN

Stack Overflow用户

发布于 2014-11-07 01:08:25

我知道这个问题有些老生常谈,但我想指出什么对我有效。

我尝试使用Android Developers website中的示例代码(如下所示),但不起作用。所以我检查了EditorInfo类,我意识到IME_ACTION_SEND整数值被指定为0x00000004

Android开发者的示例代码:

代码语言:javascript
复制
editTextEmail = (EditText) findViewById(R.id.editTextEmail);
editTextEmail
        .setOnEditorActionListener(new OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId,
                    KeyEvent event) {
                boolean handled = false;
                if (actionId == EditorInfo.IME_ACTION_SEND) {
                    /* handle action here */
                    handled = true;
                }
                return handled;
            }
        });

因此,我将整数值添加到我的res/values/integers.xml文件中。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer name="send">0x00000004</integer>
</resources>

然后,我编辑了布局文件res/layouts/activity_home.xml,如下所示

代码语言:javascript
复制
<EditText android:id="@+id/editTextEmail"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:imeActionId="@integer/send"
  android:imeActionLabel="@+string/send_label"
  android:imeOptions="actionSend"
  android:inputType="textEmailAddress"/>

然后,示例代码就可以工作了。

票数 27
EN

Stack Overflow用户

发布于 2010-03-21 04:48:42

有关如何设置OnKeyListener并让其侦听Done按钮的更多详细信息。

首先,将OnKeyListener添加到类的implements部分。然后添加在OnKeyListener接口中定义的函数:

代码语言:javascript
复制
/*
 * Respond to soft keyboard events, look for the DONE press on the password field.
 */
public boolean onKey(View v, int keyCode, KeyEvent event)
{
    if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
        (keyCode == KeyEvent.KEYCODE_ENTER))
    {
        // Done pressed!  Do something here.
    }
    // Returning false allows other listeners to react to the press.
    return false;
}

给定一个EditText对象:

代码语言:javascript
复制
EditText textField = (EditText)findViewById(R.id.MyEditText);
textField.setOnKeyListener(this);
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2004344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档