gpt4 book ai didi

安卓软键盘不会消失

转载 作者:行者123 更新时间:2023-11-29 22:12:19 25 4
gpt4 key购买 nike

所以我有一个最初被禁用的 EditText。当我按下一个按钮时,它会启用它,并自动打开软键盘。

InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

mgr.showSoftInput(etToDelete, InputMethodManager.SHOW_FORCED);

在其中输入一些文本后,我按下 EditText,这应该会再次禁用它并隐藏打开的键盘。

InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

mgr.hideSoftInputFromWindow(((EditText)view).getWindowToken(), 0);

但是,它所做的是非常快速地关闭然后重新打开它。我的猜测是,当您通常按下 EditText 时,它会打开 keboard,所以在这种情况下,即使我关闭它,它也会因此重新打开它:(

解决方案是什么?我已经尝试了几种方法来阻止键盘在按下 EditText 时显示,但我没有成功,如果有人能给我一个具体的例子来说明应该如何制作,我将不胜感激。

最佳答案

我遇到了同样的问题,所以我解决了:

首先创建一个KeyBoardManager类:

import android.content.Context;
import android.os.Handler;
import android.view.inputmethod.InputMethodManager;

public class KeyBoardManager {

public KeyBoardManager(Context context) {
final Handler handler = new Handler();
final InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
new Thread(new Runnable() {
@Override
public void run() {
while(true){
try{Thread.sleep(100);}catch (Exception e) {}
handler.post(new Runnable() {
@Override
public void run() {
if(!imm.isAcceptingText()){
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, InputMethodManager.HIDE_NOT_ALWAYS);
}
}
});
}
}
}).start();
}
}

并在第一个 Activity 的 onCreate 方法中创建一个新的 KeyBoardManager 实例,例如:

public class Main extends Activity {    
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new KeyBoardManager(this);
}
}

并且当您第一次调用时在屏幕上绘制编辑文本时:]

(new Handler()).postDelayed(new Runnable() {
editText.requestFocus();
editText.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN , 0, 0, 0));
editText.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(), MotionEvent.ACTION_UP , 0, 0, 0));
}, 200);

关于安卓软键盘不会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9329233/

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