gpt4 book ai didi

java - 控制 ime_action_done 行为

转载 作者:行者123 更新时间:2023-12-01 13:00:40 24 4
gpt4 key购买 nike

我有两个带有 ime_action_done 的 Android Activity 。

Activity A 在 EditText View 上有它。

那里 - 软键盘“完成”关闭键盘。

private void initLayout(){
mInputText.setImeOptions(EditorInfo.IME_ACTION_DONE);
}

没有onEditorAction覆盖

Activity B 将其放在扩展 TokenCompleteTextView 的自定义 View 上

(com.tokenautocomplete.TokenCompleteTextView extends android.widget.MultiAutoCompleteTextView implements android.widget.TextView$OnEditorActionListener )

完成的操作不会执行任何操作。

  completionView.setOnEditorActionListener(new OnEditorActionListener() {

@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (completionView.enoughToFilter() && (adapter != null)) {
//some logic. doesn't separate action_done from the other actions.
}
return true;
}
});

如何让第二个也关闭软键盘?

最佳答案

mInputText.setImeOptions(EditorInfo.IME_ACTION_DONE);

将操作设置为action_done(关闭键盘)的默认操作

在 Activity B 中,我使用了 setOnEditorActionListener 来捕获 ime_action 并使用它。

所以我必须在 Activity B 中添加它:

completionView.setOnEditorActionListener(new OnEditorActionListener() {

@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {


if (actionId == EditorInfo.IME_ACTION_DONE) {
InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(completionView.getWindowToken(), 0);
}

或者像这样:

 completionView.setImeOptions(EditorInfo.IME_ACTION_DONE);


completionView.setOnEditorActionListener(new OnEditorActionListener() {

@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {


//logic
}
return false;
}
});

关于java - 控制 ime_action_done 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23537589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com