我有一个EditText
,其中我设置了以下属性,以便当用户单击EditText时可以在键盘上显示done按钮。
editText.setImeOptions(EditorInfo.IME_ACTION_DONE);
当用户单击屏幕键盘上的done按钮(完成键入)时,我想要更改RadioButton
状态。
从屏幕键盘点击完成按钮时,如何跟踪完成按钮?
发布于 2016-10-24 16:13:27
<EditText android:imeOptions="actionDone"
android:inputType="text"/>
Java代码是:
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;
}
});
发布于 2014-11-07 01:08:25
我知道这个问题有些老生常谈,但我想指出什么对我有效。
我尝试使用Android Developers website中的示例代码(如下所示),但不起作用。所以我检查了EditorInfo类,我意识到IME_ACTION_SEND整数值被指定为0x00000004
。
Android开发者的示例代码:
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
文件中。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="send">0x00000004</integer>
</resources>
然后,我编辑了布局文件res/layouts/activity_home.xml
,如下所示
<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"/>
然后,示例代码就可以工作了。
发布于 2010-03-21 04:48:42
有关如何设置OnKeyListener并让其侦听Done按钮的更多详细信息。
首先,将OnKeyListener添加到类的implements部分。然后添加在OnKeyListener接口中定义的函数:
/*
* 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对象:
EditText textField = (EditText)findViewById(R.id.MyEditText);
textField.setOnKeyListener(this);
https://stackoverflow.com/questions/2004344
复制相似问题