我正在寻找方法来减少我的应用程序中的“id污染”。据我所知,R.id
对于应用程序是全局的,因此在每个Activity中我通常会为元素创建唯一的资源id值,即使我有很多相同的东西。例如,如果我有三个Activity类,每个类都有一个保存和取消按钮,我会为R.id
定义六个唯一ID:
R.id.actOne_save
R.id.actOne_cancel
R.id.actTwo_save
R.id.actTwo_cancel
R.id.actThree_save
R.id.actThree_cancel
这对我来说似乎没用,因为我真的只需要在任何Activity上运行两个。在生成资源ID时,您都使用了哪些实践?你是否在活动之间重复使用它们?如果一个id同时存在于两个Activites(可能是一个暂停和一个前景)上,那还可以吗?我害怕奇怪的行为,比如按钮点击太多听众!
答案 0 :(得分:21)
您可以在多个元素中使用相同的ID,只要它们不在同一个视图中即可。因此,您的所有保存按钮都可以具有btn_save
的ID,只要在同一布局文件中没有两个,或者附加布局,那么您就可以了。
答案 1 :(得分:4)
我用:
R.id.activityName_type_action
其中type可能是 [btn | txtview | edittext | listview ...]
并且操作类似于 [save | del | accept | name | pin ...]
它非常冗长,但这样我可以从活动中猜出标识符名称而无需连续检查xml布局。
例如:
R.id.loginpin_btn_accept
R.id.loginpin_txtview_pin
答案 2 :(得分:1)
其他答案可行,但您也可以在布局文件夹中创建save_button.xml,并将<Button>
作为根标记。然后在那些需要它的地方引用那个人的id。这意味着您只需要定义一个“保存”按钮,并在任何地方使用它。