1

how to highlight menu item on selection?は、Android

にカスタムメニュー項目のonFocus状態を強調するためにどのように私は非常に私の実装の近くにあるこのにぶつかりました。しかし、私の場合は違いがあります。私はTV用に開発しており、LEFT/RIGHT?CENTERなどのコントロールを持っているので、LocalBroadcastManagerを使用して、自分のアクティビティのカスタムレイアウトクラスからkeyEventを受け取ります。

private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     KeyEvent keyEvent = intent.getParcelableExtra(Constants.KEY_PRESSED_EVENT); 
     Log.d(TAG, "Receiver got ketEventCode : " + keyEvent.getKeyCode()); 
     switch (keyEvent.getKeyCode()) { 
      case KeyEvent.KEYCODE_MENU: 
       if (!PipLayout.isMenuOpened) 
        openOptionsMenu(); 
       else 
        closeOptionsMenu(); 
       break; 
      case KeyEvent.KEYCODE_BACK: 
       return true; 
     } 
} 

私は私のリモコンのを押して左キーを言っていたとき、私行うには、次

menu.getItem(menuItemPosition).getActionView().requestFocus(); 

とはいフォーカス可能とfocusableOnTouchModeがtrueに設定されているが、私のカーソルがで強調表示されていないされているアイテム私はメニュー項目の位置に更新を示すログを持っていますが、UIです。

どのように表示されているmenuItemを強調表示できますか?

答えて

0

Androidで提供されたDrawable State List Resourcesを使用して、フォーカスと選択したコントロールのハイライトの実装について説明したdocumentationをチェックしてください。

android:state_activatedをお試しください。

ブール値。オブジェクトが永続的な選択としてアクティブ化されている場合(永続的なナビゲーションビューで以前に選択されたリスト項目を「強調表示」など)、この項目を使用する必要がある場合は「true」。オブジェクトがアクティブ化されていないときに使用する必要がある場合は「false」。このを共有するためのおかげで@Teyram

+0

。しかし私は私の場合にはもっと実現可能だったので、カスタムメニューを実装することを選択しましたが、他の人がこれで恩恵を受けることを願っています。 –