Android getID()是否总是返回一个常量值?
对于我的Android项目,我使用Android getID()是否总是返回一个常量值?,android,constants,Android,Constants,对于我的Android项目,我使用getID()方法检索视图的数值,并将该值存储在数据库中。我确信,特定视图的这个getID()方法在生产环境中的多次执行以及随后几年的应用程序更改中始终会返回相同的常量值。我的假设正确吗?View#getId()是您在布局xml文件中定义的R.id.xyz的值。在重新编译应用程序之前,它们不会改变,因为这会改变生成的R.java文件(但不一定改变数字id值) 在生产环境中多次执行 是,如果应用程序未更新 以及随后几年的应用程序更改 也许吧,但我不这么认为。也许有
getID()
方法检索视图的数值,并将该值存储在数据库中。我确信,特定视图的这个getID()
方法在生产环境中的多次执行以及随后几年的应用程序更改中始终会返回相同的常量值。我的假设正确吗?View#getId()
是您在布局xml文件中定义的R.id.xyz
的值。在重新编译应用程序之前,它们不会改变,因为这会改变生成的R.java文件(但不一定改变数字id值)
在生产环境中多次执行
是,如果应用程序未更新
以及随后几年的应用程序更改
也许吧,但我不这么认为。也许有一种方法可以设置你的工具来生成预先确定的修复id值,因为Android本身有稳定的id,但Idk是如何实现的。这些工具不是生成的id吗?除非可以显式设置ID的值,否则我不会指望依赖数值本身的一致行为。我不建议使用
if(view.getId()==0x07010001)
,因为这可能会改变,但使用if(view.getId()==R.ID.view)
是安全的。谢谢zapl。在未来的应用程序和Android SDK更改中,我对依赖getID()的感觉不太好。我很高兴我现在问了。Sam,是的,我对“if(view.getId()==R.id.view)”很满意,但我实际上是在数据库中存储R.id.view(返回0x07010001)以供将来参考,我想这是自找麻烦。谢谢你澄清这一点。要使ids在整个构建中保持不变,你必须在public.xml()@user1005585中声明ids。我通过更改找到了此注释,请阅读以了解堆栈溢出中的一些提示和技巧。Nandeesh,非常有趣。我喜欢。非常感谢。