![](/img/trans.png)
[英]How to generate random numbers and distribute them randomly to some buttons?
[英]How to Generate IDs for Randomly Generated Buttons
我正在生成随机数量的按钮,并且需要为每个按钮设置唯一的ID以便进一步使用。 我正在使用View.generateViewID()
设置ID,但是如何获取ID?
相反,是否可以通过将ID设置为变量来对按钮编号,而不是以某种方式生成随机ID,而每次递增1?
generateViewID()
将返回一个整数,保证在R
类中是唯一的。
之后如何获取ID?
int generatedId = View.generateViewID();
现在,您可以将generatedID
设置为任何视图的ID,然后通过view.getId()
获取它。
相反,是否可以通过将ID设置为变量来对按钮编号,而不是以某种方式生成随机ID,而每次递增1?
从理论上讲,您可以做到这一点,并且在大多数情况下,您不会遇到任何问题。 但是,如何确定您不会与R
类中生成的另一个ID相冲突? 不要对生成的id类型做任何假设,今天它们的数量非常大,也许明天算法可能会改变。 此外,该框架还为您提供了一个用于生成ID的API,您为什么不理会它呢? 采用框架建议的模式。
除了您要遵循的方法外,还有另一种简单明了的方法。 对于动态添加的控件(Button,Textview),您必须维护该控件的数组/列表,例如List<Button> lstButtons
,并将ID设置为必须根据基本ID进行选择/设置,例如int buttonBaseId = 100;
。 对于每个动态添加的按钮,您必须将其增加1,例如buttonBaseId += 1;
。
该方法也可以用于多个控件。 假设您要在这种情况下动态添加TextView
,则可以选择Textview基本ID(从1000开始),并为每个随机添加的textview将其增加1。
通过采用这种方法,您可以随时通过ID或索引从相应列表中检索任何控件。
通过这种方式,您可以控制按钮的开始位置。 希望这个能对您有所帮助 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.