1

項目が ToggleButton である GridView があり、項目をクリックするためのイベント リスナーを定義しましたが、項目をクリックしても何も起こりません。リスナーは次のとおりです。

    paintActionsGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() 
    {
        public void onItemClick(AdapterView<?> parent,View view,int position,
                long id)
        { 
            ((ToggleButton)view).setChecked(true);
            paintBoardView.setPaintAction(paintActions[position]); 
        }
    });

リスナーにブレーク ポイントを設定しましたが、到達していません。つまり、リスナーがまったく呼び出されていません。誰かが何が悪いのか教えてもらえますか? 項目がトグルボタンになっていることと関係ありますか? 必要に応じてアダプターコードを添付できます。ありがとう。

4

2 に答える 2

2

クリック イベントは ToggleButton によって消費されるため、GridView には渡されません。この投稿に似ています。

于 2012-05-28T20:13:01.527 に答える
1

問題は、デフォルトでToggleButtonがクリック可能になっているため、 ItemClickListener が機能しないことです。アイデアは、デフォルトで ToggleButton のフォーカスを false に設定することです。

ToggleButton のカスタム xml があると仮定して、次の行をそれに追加します。

android:focusable="false"

フォーカスされた要素があるため、この問題が発生します。このシンプルなアイデアを試してみてください。

于 2012-05-29T04:17:14.013 に答える