2012-05-30 2 views
3

Как избежать повторения кода для элементов интерфейса, которые являются точно такими же? В android для доступа к элементу программно вам нужно назвать каждый элемент уникальным идентификатором.Как управлять повторяющимися элементами пользовательского интерфейса

Например, у меня есть кнопка возврата, которая выполняет ту же самую функцию, где бы она ни использовалась, но из-за того, что она должна была их идентифицировать, в итоге у меня есть BackButton1, BackButton2, BackButton3 и т. Д. В результате мне приходится переписывать тот же OnClickListener для каждый кнопка.

Есть ли что-то похожее на атрибут html 'class' или аналогичный способ группировки элементов в android? Если нет, то каким образом можно назвать повторяющиеся элементы?

+0

http://developer.android.com/resources/articles/layout-tricks-reuse.html –

ответ

2

Если вы определяете кнопку в макете xml, то вы можете использовать атрибут onclick, чтобы ссылаться на общий метод в вашей деятельности, который вызывается при нажатии кнопки.

если вы используете onclick="doBack" в XML в той вашей деятельности у вас есть метод, называемый

public void doBack(View v) { 
    // perform back 
} 
+0

Это было подходящее решение для моей проблемы. благодаря – Monokh

0

Конечно, вы можете повторно использовать компоненты пользовательского интерфейса см Android Developer's site для более подробной информации:

Есть ViewStub " чтобы сделать то, что вы хотите, если вы не хотите, чтобы весь Layout был включен, но только некоторые компоненты, и снова лучший источник, чтобы узнать это, будет Android developers website

Что касается повторного ID «S обеспокоен, мой принять, что вы можете повторно использовать идентификаторы тех пор, пока они не находятся в одной и той же Activity

Из Дев документа:

Идентификатор не должен быть уникальным во всей целое дерево, но оно должно быть уникальным в пределах той части дерева, которую вы ищете (что часто может быть быть всем деревом, поэтому лучше всего быть совершенно уникальным, если возможно ).

0

Вы считаете, что наличие нескольких элементов на одном пользовательском интерфейсе, который делает то же самое, является плохим идеей? Если у вас есть кнопка, которую при нажатии на нее вы переходите к предыдущему действию, вы, вероятно, должны иметь ее в одной легкодоступной части экрана.

Смежные вопросы