我有一个用 Java 实现的自定义 View ,它是一个带有 4 个 subview 的垂直布局。
我希望能够通过自定义 View 中的方法传递每个 subview 的配置。
假设我只想为每个 View 传递不同的颜色 ID,例如对于 child 1 使用 R.color.white
,对于 child 2 使用 R.color.red
等
我如何将此信息传递到自定义 View ?以下内容可行:
public void configure(int color1, int color2, int color3, int color4)
但这样做的问题是,我更喜欢一种方法,即方法的调用者指示哪个颜色属于哪个子项 (1,2,3,4),而不是传递方法调用中固定的颜色
最佳答案
如果您希望能够允许调用者配置各个子项,我建议为每个子项公开单独的方法:
public void configureChild1(int color)
public void configureChild2(int color)
...
如果您只想要一个“动态”方法,则必须接受从位置到颜色的 Map
之类的内容,或者位置和颜色的可变参数 Pair
:
public void configure(Map<Integer, Integer> positionsToColors)
public void configure(Pair<Integer, Integer> ... positionAndColors)
这些的缺点是没有编译时方法知道传入的位置是否有效。
关于java - 如何将资源 ID 传递给自定义 View 并指示哪个 subview 使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58565967/