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(可能是一个暂停和一个前景)上,那可以吗? 我害怕奇怪的行为,如按钮点击太多听众!

  • 获取Android文件资源的大小?
  • JPG真的只能在Android中使用吗?
  • Android:资源中的getString()丢失了字符串中的任何标记
  • Android编译资源 - resources.arsc
  • 无法在应用程序中使用png资源覆盖库的xml资源?
  • 找不到与给定名称匹配的资源
  • Android是否可以在XML文件中定义地图?
  • 在titanium,是否可以从Android模块访问第三方jar捆绑的资源文件(xml)?
  • 您可以在多个元素中使用相同的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。 这意味着您只需要定义一个“保存”按钮,并在任何地方使用它。