1

実行時idにコンポーネントの名前を変更することはできますか?

<ImageButton android:id="@+id/ImageButton01"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true" android:background="@drawable/single_square"
    android:onClick="itemSelected"
     />

onClickメソッドは、ランダムな背景画像を追加します。後で、2回目にクリックしたときに、追加された背景画像を知りたいです。これを行うには、最初のクリックでこのコンポーネントの id 名 (ImageButton1) を、設定されたイメージ名 (たとえば、key_image) に変更します。それ、どうやったら出来るの?

4

2 に答える 2

1

イメージ名を追跡するだけの場合は、ID を変更する必要はありません。別の String 変数を使用するか、または (できれば望ましい)ボタンでsetTagメソッドとgetTagメソッドを使用するだけです。

オブジェクトのタグは、実際には、そのオブジェクトに関する追加情報を格納する場所にすぎません。したがって、あなたの場合、 Button btnがあり、それに imageNameのような String を関連付けたい場合:

btn.setTag(imageName);

文字列を取得するには、次を使用します。

String lastImageName = (String) btn.getTag();

注:タグは任意のオブジェクトにすることができます。String である必要はありません。実際、この例でgetTagの結果を(String)でキャストする必要があるのはそのためです。

于 2013-10-19T11:01:13.573 に答える
0

setId(id)のメソッドを使用してImageButton、ID をImageButton..

imagebutton.setId(someId);
于 2013-10-19T10:50:11.270 に答える