当前位置: 首页 > 知识库问答 >
问题:

EditText请求焦点不工作

笪欣嘉
2023-03-14

我有一个EditText和一个Button。点击按钮,我想打开EditText键盘,同时请求关注EditText,以便用户直接开始在键盘上键入文本,并出现在EditText中。但是在我的例子中,当我点击按钮时,它会打开键盘,但它不会将焦点设置在EditText上,因为用户必须再次单击EditText才能在上面写入。问题是什么。任何帮助或建议。

单击按钮时的代码

m_SearchEditText.requestFocus();
InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(m_SearchEditText.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);

共有3个答案

姬烨磊
2023-03-14

以下内容对我很有用,应该会有所帮助:

EditText yourEditText= (EditText) findViewById(R.id.yourEditText);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(yourEditText, InputMethodManager.SHOW_IMPLICIT);
董翰池
2023-03-14

在我的例子中,它的工作原理是在您单击按钮并在另一个视图中设置焦点后添加一个处理程序,焦点可以返回到您需要的视图。

只需在代码中输入以下内容:

final Handler handler = new Handler();
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        lastview.getEditText().clearFocus();
                        m_SearchEditText.requestFocus();
                        InputMethodManager mgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);


                        mgr.showSoftInput(mLastNameET, InputMethodManager.SHOW_IMPLICIT);

                    }
                }, 100);

我希望这是有帮助的

公良鸿风
2023-03-14

确保编辑文本在触摸模式下可聚焦。你可以用两种方法。

xml中:

android:focusableInTouchMode="true"

在Java中:

view.setFocusableInTouchMode(true);

我个人不相信这个参数的XML定义。我总是通过以下两行代码请求焦点:

view.setFocusableInTouchMode(true);
view.requestFocus();

键盘应该会自动出现,而不需要调用InputMEDManager。

它在大多数情况下都有效。一旦它对我不起作用,因为我已经因为相当繁重的处理而丢失了对对象的引用-请确保这不是您的问题。

 类似资料:
  • 我有四个编辑文本来读取PIN。现在,我已经对EditText的Java端进行了编码,它的行为异常。在第一个编辑文本中输入一位数字后,它应该请求第二个编辑文本的焦点,但它会转到第三个编辑文本。 更重要的是,它被定义为,并且数字仍然可见。 这是布局文件的源代码: java文件的源代码: 如何解决这个问题?

  • 我尝试在我的项目中使用伪类。我想改变我点击它的元素的颜色。现在,当我点击我的元素时,只在它处于活动状态的地方改变颜色,鼠标上移后,它就会返回到原来的颜色。第二次点击后,我想让它回到原来的颜色。我用的是铬。 此处演示 null null

  • 我在我的应用程序中使用,我在里面使用了,当我按下添加更多按钮时需要关注按钮。 示例代码 JavaScript xhtml Java语言 在这里,上面的代码可以很好地按照我的预期聚焦最后添加的selectOneMenu,但浏览器滚动条不会在聚焦最近添加的selectOneMenu组件的基础上向下移动。 请帮我解决这个问题。

  • 我有一个EditText-Field,并为它设置了一个OnFocusChangeListener。当它失去焦点时,将调用一个方法,该方法用数据库中的EditText检查EditText的值。如果方法的return-value为true,则显示一个toast并且焦点应该再次回到EditText上。焦点应该总是回到EditText上,键盘应该显示,直到方法的return-value为false。 ed

  • 我正在做Android智能电视应用: > 在中有一个自定义键盘和一个。 当应用程序启动时,焦点转到键盘。 null

  • 我有一个带有EditText和按钮的活动。当用户单击EditText时,会显示键盘,他可以输入一些Text-很好。但是当用户单击按钮时,我希望EditText不再对焦,即键盘隐藏,直到用户再次单击EditText。 单击按钮后,如何“隐藏EditText的焦点”。我可以在按钮的OnClick方法中添加一些代码来实现这一点? 编辑: 顺致敬意,