gpt4 book ai didi

android - onFocusChange 对我不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 11:11:01 42 4
gpt4 key购买 nike

当焦点离开 TextEdit 框时,我想使键盘消失。我彻底搜索了 stackoverflow 和谷歌以获得答案,并尝试了我看到的每一个回复/文章,但似乎对我没有任何作用。

与许多人一样,我对 Android 开发还很陌生。我一定是忽略了一些无济于事的小细节。

我目前的实现(同样,我尝试了很多解决方案)如下:

我的类实现了 OnFocusChangeListenerOnCreate 在调用 super 和 setContentView 之后我这样做:

EditText editText = (EditText) findViewById(R.id.text_box);<br> editText.setOnFocusChangeListener(this);

@Override
public void onFocusChange(View v, boolean hasFocus) { Log.d(TAG, "--> onFocusChange"); }

但我从未看到该日志消息。

有时候我觉得onFocusChange并不是我想的那样。我的想法是,当我们触摸 textedit 字段时,此 View 获得焦点,当您触摸屏幕的任何其他区域时,比如按钮/列表框等​​,textedit 失去焦点并且应该调用 onFocusChange,但事实并非如此,我从来没有看到日志条目。

也许澄清我正在使用 Android Studio 并创建了一个使用 fragment 的应用程序是有用的。

因此,我在 Detail Activity 上执行此操作,而 Detail Activity 又是 fragment 的一部分。我也尝试在 fragment 的 onActivityCreated 上执行此操作。

这两种方法都不适合我。

有什么想法我在这里可能会遗漏什么吗?

非常感谢您的评论。

最佳答案

edittext.requestFocus();

试试这个:

       EditText editText = (EditText) findViewById(R.id.text_box);
editText.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View v, boolean hasFocus)
{
if (hasFocus == true){
edittext.requestFocus();
}
else{
InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
}
}
});

关于android - onFocusChange 对我不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25051685/

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