请求对具有EditText叠加层的SurfaceView活动中的EditText进行关注

时间:2012-02-23 08:15:38

标签: android

我开发了一款游戏。  所有的绘图都是由我的sSurfaceViewClass处理的,它是一个扩展SurfaceView的Activity。 我覆盖了一些自定义ui组件,主要是按钮和textview。

除了EditText的叠加外,一切正常。 我无法以编程方式请求EditText的焦点。 我希望在创建激活时关注EditText。是什么意思弹出键盘,光标在EditText中,等待输入。 这是我的代码的一部分:

            addContentView(surfaceViewClass, layoutParamsCompleteLayout);


            editTextKeyboard = new EditText(this);
            editTextKeyboard.requestFocus();
    editTextKeyboard.setAlpha(0);
    editTextKeyboard.setSingleLine();
    editTextKeyboard.setImeOptions(EditorInfo.IME_FLAG_NO_FULLSCREEN);
    editTextKeyboard.setFocusableInTouchMode(true);

            addContentView(editTextKeyboard, layoutParamsCompleteLayout);

使用requestFocus()方法通常可以正常工作。但在这种情况下(surfaceView plus overlay)它没有。

我很高兴得到任何支持。另外一个解决方法对我有很大的帮助!

THX

1 个答案:

答案 0 :(得分:1)

在将其添加到曲面视图后尝试使用requestFocus()

在将其添加到父版面之前,您正在执行此操作。