R.id值的范围

我正在寻找方法来减少我的应用程序中的“id污染”。 据我所知, R.id是应用程序的全局,所以在每个Activity中我通常会为元素创建唯一的资源id值,即使我有很多相同的东西。 例如,如果我有三个Activity类,每个类都有一个save和cancel按钮,我会为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(可能是一个暂停和一个前景)上,那可以吗? 我害怕奇怪的行为,如按钮点击太多听众!

Solutions Collecting From Web of "R.id值的范围"

您可以在多个元素中使用相同的ID,只要它们不在同一视图中即可。 因此,所有保存按钮都可以具有btn_save的id,只要在同一布局文件中没有两个或附加布局,那么你就没事了。

我用:

R.id.activityName_type_action

types可能是[btn | txtview | edittext | listview …]

和动作类似[save | del | accept | name | pin …]

它非常冗长,但这样我可以从活动中猜出标识符名称而无需连续检查xml布局。

例如:

R.id.loginpin_btn_accept

R.id.loginpin_txtview_pin

其他答案可以使用,但您也可以在布局文件夹中创建save_button.xml,其中作为根标记。 然后在那些需要它的地方引用那个人的id。 这意味着您只需要定义一个“保存”按钮,并在任何地方使用它。