2

さまざまなビューで構成されるアイテムを含むグリッドビューがあります。その中には、存在する場合と存在しない場合がある ImageButton があります (ケースによって異なります)。グリッド内の各項目に onItemClick を実装しましたが、情報ボタンが存在する (そして押された) ときにトーストを表示する必要もあります。情報ボタンを含むアイテムが onItemClick に応答しなくなり、押された情報アイコンにのみ応答するという事実を除いて、すべて正常に機能しました。情報ボタンと他の領域の両方をクリックすると、これらのアイテムがそれに応じて応答するようにするにはどうすればよいですか?

onItemClick() のコードは次のとおりです。

@Override
public void onItemClick(AdapterView<?> av, View v, int arg2, long arg3) {
        getDayStatus((Date) _monthVectorList.get(0).get(arg2));
        _listenerDateSelect.onDispatchDateSelect((Date) _monthVectorList.get(0).get(arg2)); 
}

ここに Info の imageButton があります:

<ImageButton
    android:layout_width="15dp"
    android:layout_height="15dp"
    android:id="@+id/tv_day_info"
    android:layout_gravity="center"
    android:gravity="right|center"
    android:layout_marginLeft="1dp"
    android:onClick="infoToast"
    android:focusable="false"
    />

また、情報トーストのコードは次のとおりです。

public void infoToast(View view){
        Date date = (Date) view.getTag();
    List<String> dayDescription = getDayStatus(date);
    Context context = (Context) getApplicationContext();
    int duration = Toast.LENGTH_SHORT;
    CharSequence text = (String) dayDescription.get(2);

    Toast.makeText(context, text, duration).show();
    }

フォーカスをimageButtonに設定しようとしましたが、それでも機能しません。問題をよりよく描写するために画像を添付します: http://oi42.tinypic.com/2rcxrv6.jpg

4

3 に答える 3

4

これを ImageButton のルート レイアウトに追加します。

android:descendantFocusability="blocksDescendants"
于 2013-08-09T11:48:52.977 に答える
0

試してみてください:

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

イメージボタンの内側

于 2013-08-09T08:22:59.603 に答える
0

「情報ボタン」はグリッドビュー項目からフォーカスを得ているため、ボタンをクリックすることしかできません。この場合は「情報ボタン」です​​。ただし、「情報ボタン」をフォーカス不可に設定して、グリッドビュー項目をクリックすることもできます。これを試して:

<Button
        android:id="@+id/your_info_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="info Button"
        android:focusable="false"
        android:focusableInTouchMode="false" />

お役に立てれば。

于 2013-08-09T08:44:06.830 に答える