Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中定义相同的ID可以吗?_Java_Android_Xml - Fatal编程技术网

Java 在Android中定义相同的ID可以吗?

Java 在Android中定义相同的ID可以吗?,java,android,xml,Java,Android,Xml,我知道,如果我们定义不同的ID,将来很容易找到它。我找到了很多答案,但它们不是我想要的。我有一个java函数,它有点长,将在许多java活动中使用。因此,我不可能为每个java和xml活动更改ID。那么,在不同的XML和JAVA文件中使用相同的ID可以吗?或者他们会以任何方式使应用程序崩溃吗?IDs示例: XML活动一: <TextView android:id="@+id/resultview" /> printresult = (TextView) fi

我知道,如果我们定义不同的ID,将来很容易找到它。我找到了很多答案,但它们不是我想要的。我有一个java函数,它有点长,将在许多java活动中使用。因此,我不可能为每个java和xml活动更改ID。那么,在不同的XML和JAVA文件中使用相同的ID可以吗?或者他们会以任何方式使应用程序崩溃吗?IDs示例:

XML活动一:

<TextView  android:id="@+id/resultview"  />
printresult = (TextView) findViewById(R.id.resultview);
<TextView  android:id="@+id/resultview"  />
printresult = (TextView) findViewById(R.id.resultview);
XML活动二:

<TextView  android:id="@+id/resultview"  />
printresult = (TextView) findViewById(R.id.resultview);
<TextView  android:id="@+id/resultview"  />
printresult = (TextView) findViewById(R.id.resultview);

正如您在上面看到的,有不同的XML和JAVA,但ID是相同的。

您不会有问题,因为组件在不同的XML中。但最好给它们起不同的名字,这样你自己会更舒服。例如:

<TextView  android:id="@+id/resultview1"  />
<TextView  android:id="@+id/resultview2"  />

是的,在不同的XML文件中使用相同的id是可以的。这里要考虑的一点是,活动会对特定布局进行充气,而findViewById方法会使用您充气的特定布局中的id查找视图。是的,这不会引入bug,但是这是一种不好的做法

您可以通过android studio的重构功能重构id。因此,如果您在这里更改id,android studio将搜索该特定id的用法并为您更改它们

  • 右键单击要更改的id
  • 点击重构
  • 单击重命名
  • 您将看到出现以下对话框
  • 然后,您可以通过随意更改范围和其他内容来改变重构的方式

  • 在同一个文件中使用重复ID之前,不会出现任何问题。但这不是一个好的做法。

    为多个视图提供一个id没有问题,但是:

  • 视图应位于不同的布局文件中
  • 这不是一个好的做法

  • “那么在不同的XML和JAVA文件中使用相同的ID可以吗?”-可以。这不是问题。只是不要将相同的ID放在同一个文件中。
    但这不是一个好的做法。
    源代码?如果工具栏的功能完全相同,为什么我不在每个布局中为它提供完全相同的ID呢?当然这是基于偏好