5

有没有一种方法可以从视图中存储/检索任意值,类似于 HTML5 数据属性?这样,我可以让视图调用泛型onClick()方法,并且该方法可以检索相关数据。

例如:

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:onClick="setCountry"
    android:src="@drawable/ic_flag_germany" />

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:onClick="setCountry"
    android:src="@drawable/ic_flag_france" />
...

我希望能够从被点击的那个中检索一个值。

public void setCountry(View v){
     //retrieve data somehow
}
4

2 回答 2

3

您可以使用View's tag属性。它是为此目的而设计的。

例如:

<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="setCountry"
android:src="@drawable/ic_flag_germany" 
android:tag="Germany" />

...

public void setCountry(View v) {
    System.out.println(v.getTag());
}
于 2012-09-18T19:26:09.880 回答
0

派生自 ImageView,添加成员变量“country”和访问器方法。然后你可以在布局文件中引用你的类:

<com.foo.MyImageView ... />

或使用该tag属性。它允许您将任意对象附加到控件,但没有类型安全性,也没有具有适当名称的访问器方法。您可以在 XML 文件中指定一个字符串标记。

或者使用某种从控制 ID 到国家/地区的映射。

于 2012-09-18T02:45:42.190 回答