0

これを説明できる最良の方法は次のとおりです。たくさんの画像があるポスターギャラリーがあります。ユーザーがギャラリーを前後に移動すると、選択したポスターが強調表示されます。ポスター ギャラリーに次のコードを設定しました。

 Gallery posterGallery = (Gallery) context.findViewById(R.id.moviePosterGallery);
 posterGallery.setAdapter(new MoviePosterImageGalleryAdapter(context, key,
                          item.getCategory()));
 posterGallery.setOnItemSelectedListener(
    new MoviePosterOnItemSelectedListener(bgLayout, context));
 posterGallery.setOnItemClickListener(new MoviePosterOnItemClickListener());
 posterGallery.setOnItemLongClickListener(new MoviePosterOnItemLongClickListener());

vizio costar でリモートを押すと、[OK] ボタンを押したままにすると、クリック イベントとロング クリック イベントの両方が発生するようです。私の場合、ロングクリックを受信するとダイアログがポップアップしますが、ポスターはそれに関連するビデオを起動して、ItemClickListener コードの一部である再生を開始します。

Nexus 7 タブレットで同じコードをテストすると、長いクリックのみが発生し、両方は発生しません。Google TV で長いクリックを正しく処理する方法はありますか。それが役立つ場合、私は Google TV 3 で vizio costar を使用しています。

また、マウス ポインターをアイテムの上に移動してから、リモコンの前面にある - キーを押したままにすると、ロング クリック イベントのみがトリガーされます。それは、OKとそれがどれだけ長く続いたかに関係しているようです.

次の同様の問題を見ました。

onListItemClick および onItemLongClick Google TV

しかし、イベントを処理するときにonItemLongClickがtrueを返しています。

4

1 に答える 1

1

Vizio のリモコンには癖があります。OK ボタンは正しいキーコードにマッピングされていません。Vizio リモートは、実際には KEYCODE_DPAD_CENTER を送信する必要があるときに、OK が押されると KEYCODE_ENTER を送信します。これがあなたの問題の原因だと思います。AbleRemote を入力デバイスとして使用してみると、期待どおりに動作することがわかるはずです。問題を解決するには、キーボードが存在する場合はキーコード リスナーに移動し、posterGallery でキー イベントを検出して短いクリックと長いクリックを発生させる必要があります。

于 2013-03-02T15:38:05.143 に答える