2012-02-23 8 views
0

フレンド、EditTextのオーバーレイを使用してSurfaceViewアクティビティでEditTextのフォーカスを要求する

私はゲームを開発しています。 すべての図面はSurfaceViewを拡張するアクティビティであるsSurfaceViewClassによって処理されます。 いくつかのカスタムUIコンポーネント、主にボタンとテキストビューがオーバーレイされています。

EditTextのオーバーレイ以外はすべて正常に動作します。 プログラムでEditTextのフォーカスを要求できません。 アクティビティが作成されると、私はEditTextに焦点を当てます。キーボードがポップアップし、カーソルがEditTextにあり、入力を待っていることを意味します。私のコードの 相続人の一部:メソッドのrequestFocus(と

  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); 

)それは通常、正常に動作します。しかし、この場合(surfaceView plus overlay)、そうではありません。

私はどんなサポートについてもうれしいです。また回避策は私に多くの助けになる!

Thxを

答えて

1

は、ビューを表面化し、それを追加した後requestFocus()を使用してみてください。

親レイアウトに追加する前に実行しています。

+0

Thx。どうして私はこれを私自身で見ることができないのだろうか... – Arnold