3

私はいくつかのImageButtonをプログラムでTableLayoutに配置してきましたが、すべてのImageButtonには独自のDrawableリソースが背景としてあります。ImageButton自体のレイアウトにXML記述を使用し、その後、LayoutInflaterを使用してそのようなImageButton(genre_cell.xmlと呼ばれる)を取得します。

<?xml version="1.0" encoding="utf-8"?>
<ImageButton
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/genreCellItemId" android:layout_weight="1"
android:layout_width="wrap_content" android:layout_height="wrap_content" 
android:layout_gravity="center_horizontal"
android:paddingLeft="5dip" android:paddingRight="5dip">
</ImageButton>

そして私のクラスでは私はします:

myButton = (ImageButton) inflater.inflate(R.layout.genre_cell, row, false);

実際にすべてのImageButtonにonClickListenerをアタッチしましたが、クリックされたImageButtonを一意に識別したいと思います...背景に使用されているDrawableのIDを取得して、使用可能なDrawableのIDで確認できるのではないかと思いました。 int値?これはオプションですか?もしそうなら、どのように実装する必要がありますか?他にオプションはありますか?

4

2 に答える 2

1

たまたま、ImageButtonのsetTag()メソッドとgetTag()メソッドについて言及しているブログに出くわしました。これらは使用できるので、私の質問に答えます...ブログへのリンク: http://jongladwin.blogspot。 com / 2010/03 / androidsettag-and-gettag-usage-for.html

周りを見回した後、setId()メソッドとgetId()メソッドを見たので、そのようなImageButtonを識別するためのいくつかの方法があるようです...知っておくと便利です:P

于 2010-05-04T13:01:58.117 に答える
1

はい、できます!

res/valuesフォルダにxmlファイルを作成しますbutton_ids.xml

<?xml version="1.0" encoding="UTF-8"?>
<resources>
  <item type="id" name="image_button_one" />
  <item type="id" name="image_button_two" />
  ...
</resources>

次に、インフレートコールの後:

myButton = (ImageButton) inflater.inflate(R.layout.genre_cell, row, false);
myButton.setId(R.id.image_button_one);
...

私は実際にそれを試したことがありませんが、これはあなたがそれをすることになっている方法だと思います。

于 2010-05-04T13:39:55.653 に答える