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

时间:2017-03-23 03:01:47

标签: java android

我正在生成一个随机数量的按钮,需要为每个按钮设置唯一ID以供进一步使用。我使用View.generateViewID()来设置ID,但是我怎么能获得ID呢?

相反,是否可以通过将ID设置为变量来对按钮进行编号,每次递增1而不是以某种方式生成随机ID?

2 个答案:

答案 0 :(得分:0)

generateViewID()会返回一个整数,保证在R类中是唯一的。

  

虽然我怎么能获得ID?

int generatedId = View.generateViewID();

现在,您可以将generatedID设置为任意视图的ID,然后通过view.getId()将其恢复;

  

相反,是否可以通过将ID设置为变量来对按钮进行编号,每次递增1而不是以某种方式生成随机ID?

从理论上讲,你可以做到这一点,在大多数情况下你都没有问题。但是你怎么肯定你不会碰到R类中生成的另一个id?不要对生成的id类型做出假设,今天它们是非常庞大的数字,也许明天算法可能会改变。此外,框架为您提供了生成ID的API,为什么要忽略它?采用框架建议你的模式。

答案 1 :(得分:0)

除了您正在遵循的方法之外,还有另一种简单而简洁的方法。对于动态添加的控件(Button,Textview),您必须维护该控件的数组/列表,例如List<Button> lstButtons,并将id设置为您必须在基本ID上选择/设置,例如int buttonBaseId = 100;。对于每个动态添加的按钮,您必须将其增加1,例如buttonBaseId += 1;

此方法也可以遵循多个控件。假设你想动态添加TextView,你可以选择从1000开始的Textview base id,并为每个随机添加的textview增加1。

通过遵循此方法,您可以通过id或index在任何位置从相应列表中检索任何控件。

通过这种方式,您可以控制按钮的开始位置。希望这会对你有帮助:)