繁体   English   中英

如何为随机生成的按钮生成ID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM