编辑文本在请求焦点上不显示输入键盘



我遇到了一个奇怪的问题。当我使用以下代码段添加编辑文本时:

edit = new EditText(context);
edit.setInputType(InputType.TYPE_CLASS_TEXT);
edit.layout(0, 0, (int)searchPane[W], (int)searchPane[H]);
edit.setBackgroundColor(Color.TRANSPARENT);
edit.setGravity(Gravity.CENTER_VERTICAL);
edit.addTextChangedListener(SearchBox.this);
edit.setFocusable(true);
edit.setFocusableInTouchMode(true);

并使用edit.draw(Canvas)onDraw方法中绘制它 View.我在onTouchMethod中调用edit.requestFocus(),尽管它在焦点请求时没有显示输入键盘。任何想法如何使编辑文本接受文本并显示输入键盘?

提前谢谢。

您的 EditText 不是视图层次结构的一部分,因为您从未将其作为子项添加到视图组;因此,除非您在视图组中实现触摸事件,否则它不会接收触摸事件(以及其他内容)。

将呼叫添加到addView(edit)并将edit.layout(0, 0, (int)searchPane[W], (int)searchPane[H])移至onLayout 中。

它可能不会那么简单,创建自定义视图是一项高级任务 - 您确定使用现有视图布局中的一个(或组合)无法尝试做什么吗?

如果没有,您应该阅读 http://developer.android.com/training/custom-views/index.html

唯一对我有用的组合:

edit.requestFocus()
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(edit, InputMethodManager.SHOW_FORCED);

向活动添加输入模式配对

<activity android:name="..."
              android:windowSoftInputMode="adjustResize" />

相关内容

  • 没有找到相关文章

最新更新