Android视图的HTML 5数据属性的等价物

时间:2012-09-18 02:10:36

标签: java android xml android-view

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

e.g:

<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
}

2 个答案:

答案 0 :(得分:3)

您可以使用View的{​​{3}}属性。它旨在用于此目的。

例如:

<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());
}

答案 1 :(得分:0)

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

<com.foo.MyImageView ... />

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

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