1

我正在使用以下方法声明一个按钮:

Button btn = new Button(this);
btn.setText(itemSet[i]);
btn.setId(i);

我需要添加一个将在单击时使用的自定义属性。

有没有办法做到这一点?

4

2 回答 2

6

您可以使用 附加任何数据作为按钮的标签setTag

String attribute = "Hello";
btn.setTag(attribute);

然后,您可以稍后使用getTag.

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

如果您需要将多个值绑定到一个视图,请在 values/tags.xml 中声明 ID

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item name="tag_first" type="id" />
    <item name="tag_second" type="id" />
</resources>

并将它们用作 setTag 的第一个参数。

btn.setTag(R.id.tag_first, "First");
btn.setTag(R.id.tag_second, "Second");

然后,您可以按如下方式获取绑定值:

String first = (String) btn.getTag(R.id.tag_first);
String second = (String) btn.getTag(R.id.tag_second);
于 2013-11-27T03:04:10.877 回答
1

可以使用的内置方法是按钮本身的setTag方法。您可以使用标签来存储您想要的任何信息,包括复杂的对象。这适用于所有视图。

    btn.setTag(myObject);

    public void onClick(View view) {
            MyObject myObject = (MyObject)view.getTag();
    }
于 2013-11-27T03:04:23.537 回答