gpt4 book ai didi

Android 关闭键盘 "naturally"

转载 作者:搜寻专家 更新时间:2023-11-01 09:01:00 27 4
gpt4 key购买 nike

在我的应用程序中,我有一个用于输入 url 的编辑文本,然后编辑文本具有:

android:imeOptions="actionDone"

因此,当有人按下键盘的回车键时,应用程序会连接并且键盘会消失。但是,我还有一个可以单击而不是使用 enter 命令的按钮,在这种情况下,我将模拟好像按下了软键盘的完成按钮,而不是使用其他线程中建议的典型方法来关闭键盘。这是我的做法:

v.findViewById(R.id.button1)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edit.dispatchKeyEvent(new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER, 0));

edit.dispatchKeyEvent(new KeyEvent(0, 0, KeyEvent.ACTION_UP, KeyEvent.KEYCODE_ENTER, 0));
}
});

我有一个 Action 监听器,它捕捉到事件:

public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
Log.e(TAG, "Key event received "+actionId);
if (actionId == EditorInfo.IME_ACTION_DONE ||
(event.getKeyCode() == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_UP) ){
Log.e(TAG, "Key event received will connect");
onConnectToServer(null);
return true;
}else if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER) return true;
return false;
}

但我收到错误消息,似乎按键事件发送了 100 次,并且键码未被识别为输入按钮。我不想用另一种方法关闭键盘的原因:

InputMethodManager imm = InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mFilterEditText.getWindowToken(), 0);

是因为在该代码之后,当我需要在另一个 fragment 中显示键盘时,键盘不会再次自动显示(+ 我只有一个 Activity 和许多 fragment ,因此无法在 list 中设置)有任何想法吗?谢谢

最佳答案

简直不敢相信这么简单:

edi3.onEditorAction(EditorInfo.IME_ACTION_DONE);

关于Android 关闭键盘 "naturally",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14967075/

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