EditText在requestfocus上不显示输入键盘

时间:2014-01-03 11:14:44

标签: android android-edittext android-view android-input-method

我面临一个奇怪的问题。 当我使用以下代码添加edittext时:

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中的edit.requestFocus()进行绘制。 我在onTouchMethod中调用{{1}}虽然它没有在焦点请求中显示输入键盘。任何想法如何使edittext接受文本和显示输入键盘?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您的EditText不属于View层次结构,因为您从未将其作为子视图添加到视图组中;因此,它不会接收触摸事件(除其他外),除非您在视图组中实现它。

致电addView(edit)并将edit.layout(0, 0, (int)searchPane[W], (int)searchPane[H])移至onLayout

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

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

答案 1 :(得分:0)

唯一对我有用的组合:

Warning: Failed form propType: You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.

将输入模式添加到活动

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