2016-10-25 4 views
0

私は、画面上のボタン、画面中央のEditText、さらに下の2つのボタンのような、私のアプリで簡単なインターフェースを持っています。 dpadを使用してアプリケーションの要素をナビゲートしたいのですが、EditText以外はすべて正常に動作します。基本的には、ボタンをフォーカスで強調表示しますが、EditTextは表示されません。 dpad中央ボタン(キーボードが表示されないように)。たとえば、一番上の要素をハイライト表示してdpadを押すと、上のボタンがフォーカスを失い、下の2つのボタンのいずれもフォーカスを取得しないため、フォーカスを取得するEditTextのように見えますが、どのような方法でも強調表示されず、キーボードも表示されません。私がcoursor(またはデバイスに触れる)とそれをクリックすると、それはすべて大丈夫です。dpadを使ってEditTextをフォーカスさせる

は、私がチェックするOnKeyListenerを追加しようとしましたが、オフに解雇していないようだ - のEditTextが本当にフォーカスを取得していないようにとのKeyEventはのEditTextに解雇されていません。

editKanal.setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (event.getAction() == KeyEvent.ACTION_DOWN) 
       if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER){ 
        Toast.makeText(getApplicationContext(), "got the focus", Toast.LENGTH_LONG).show(); 
        return true; 
       } 

      return false; 
     } 
    }); 

誰かが私が間違っていることを教えてもらえますか? EditTextでDPAD_CENTERが押されたときにキーボードを表示するにはどうしたらいいですか?

+0

レイアウトに次のフォーカスを追加しましたか?同じレイアウト内のすべてのアイテムですか? –

+0

おかげで@ Hala.m - あなたは正しい方向に私を導いてきました! 私はnextFocusDownセットを持っていましたが、要素が異なるレイアウトになっていました。私が多くのレイアウトを取り除き、すべてをRelativeに配置したところ、突然うまく動作し始めました。 – exx

答えて

0

こんにちは 最も可能性の高い原因である前に、この問題を抱え

1-ない追加焦点を当てダウン

両方に該当することを確認してください同じレイアウトにない

2-アイテム

+1

ありがとう!レイアウトを単純化することがトリックでした! – exx

0

は、クリックした後、この行を配置しようとすると:

editKanal.requestFocus(); 

これはあなたのXMLのレイアウトを投稿することができ、機能していない場合は?

+0

は、運が悪いことを試みました.TextEditが全くフォーカスしていないように見えるので、KEYCODE_DPAD_CENTERイベントはトリガーされませんでしたが、@ Hala.mは解決策を案内しました。私は自分のレイアウトを修正しなければならなかったので、異なるレイアウトは入れ子になっていなかったし、うまくいった! – exx

関連する問題