Android Studio 更改一个 xml 文件中的 ID 会更改另一个文件中的 ID

标签 android android-studio view refactoring rename

我曾经为 Android View 提供简单的 id,但最近,由于这个问题,我完全停止了它。

假设我有 2 个布局,一个名为 first_layout.xml第二个名为 second_layout.xml .在每个布局中,都有一个 ID 为 username_input 的 View 。 .这个id用于不同的activity类来访问目标 View ,可以是ButterKnife绑定(bind), Kotlin Android Extensions , 甚至 findViewById .

现在,无论出于何种原因,我只需要在一种布局中重命名 id 。所以我做Refactor -> Rename .怎么了? Android Studio 只是替换了 id username_input在整个项目中,弄乱了具有相同 ID 的其他布局。大多数人不会为项目中的每个 View 都使用唯一的 id,因为这不是强制性的,但我这样做是因为我做了很多重构,而且很多时候我丢失了 小时 因为项目中的这种非上下文替换。

在这种情况下我有什么选择?有没有办法让 Android Studio 在这种情况下进行上下文替换,或者我应该继续在我的项目中制作唯一的 id?

最佳答案

不久前,我遇到了同样的问题,我发现这是 Android Studio 的预期行为,因为其他元素可能会受限于 ID 正在更改的元素。因此,您需要更新所有 ID,尤其是在新布局文件 中通过其文本编辑器 而不是来自其设计编辑器的属性部分
它对我来说工作得很好,所以对你来说也必须很好:)

关于Android Studio 更改一个 xml 文件中的 ID 会更改另一个文件中的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50660446/

相关文章:

android-studio - 如何在 Gradle 中添加 Android Studio 插件作为依赖项?

postgresql - VIEWS在PostgreSQL中占用多少空间?

MySQL View - 性能不佳

sql-server - 在 Management Studio 中编辑后 SQL Server View 不工作

android - 在 Android 中从 SQLITE 读取总是返回 0 行

android - setColorFilter 在 API29 上被弃用

android - 如开发人员文档中所述,Android Jetpack 工具中的应用程序爬虫无法在本地运行

android - "Visual Studio Android Emulator"为 "Android Studio"

cordova - 如何使用 Phonegap for Android 调用远程 API?

java - 构建项目gradle时出现错误: Connection timed out: connect ?