Как передать идентификатор ресурса в пользовательское представление и указать, для какого дочернего представления его использовать? - PullRequest
0 голосов
/ 26 октября 2019

У меня есть пользовательское представление, реализованное на Java, представляющее собой вертикальную компоновку с 4 дочерними представлениями.
Я хотел бы иметь возможность передавать конфигурацию для каждого дочернего представления с помощью метода в настраиваемом представлении.
ДавайтеПредположим, я просто хочу передать другой идентификатор цвета для каждого вида, например, для ребенка 1 используйте R.color.white, а для ребенка 2 используйте R.color.red и т.д.
Как я могу передать эту информацию в пользовательское представление? Следующее будет работать:

public void configure(int color1, int color2, int color3, int color4)

, но проблема в том, что я бы предпочел, чтобы вызывающий метод указывал, какой цвет для какого потомка (1,2,3,4) вместопередача цветов, зафиксированных в вызове метода

1 Ответ

1 голос
/ 26 октября 2019

Если вы хотите, чтобы вызывающие абоненты могли настраивать отдельных детей, я рекомендую указать отдельные методы для каждого ребенка:

public void configureChild1(int color)
public void configureChild2(int color)
...

Если вы хотите использовать только один «динамический» метод, вам придетсяпринять что-то вроде Map от позиции к цвету или vararg Pair позиции и цвета:

public void configure(Map<Integer, Integer> positionsToColors)
public void configure(Pair<Integer, Integer> ... positionAndColors)

Недостатком этого является то, что во время компиляции не существует способа узнать, что переданныйв позиции действительны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...