В Android, как установить пользовательский атрибут с новой кнопкой ()?
Я объявляю кнопку, используя:
Button btn = new Button(this);
btn.setText(itemSet[i]);
btn.setId(i);
Мне нужно добавить пользовательский атрибут, который будет использоваться при нажатии.
Есть ли способ сделать это?
2 ответа
Решение
Вы можете прикрепить любые данные в виде тега кнопки, используя setTag
,
String attribute = "Hello";
btn.setTag(attribute);
Затем вы можете вернуть тег позже getTag
,
String attribute = (String) btn.getTag();
Если вам нужно привязать несколько значений к представлению, объявите идентификаторы в values /tags.xml
<?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);
Встроенным методом, который можно использовать, является метод setTag на самой кнопке. Вы можете использовать тег для хранения любой информации, которую вы хотите, включая сложные объекты. Это работает на все виды.
btn.setTag(myObject);
public void onClick(View view) {
MyObject myObject = (MyObject)view.getTag();
}