为什么我们不能在 Android 中以编程方式将字符串 ID 设置为视图?

Why can't we set string ID to a view programmatically in Android?

提问人:MOHAMED SIKKANDAR AFZAL M 提问时间:12/17/2021 最后编辑:Henry TwistMOHAMED SIKKANDAR AFZAL M 更新时间:12/17/2021 访问量:205

问:

<WebView android:id="@+id/googleWebview"/>

在这里,我可以将 ID 设置为字符串,但如果我尝试以编程方式使用,它需要一个整数。为什么会这样?"googleWebview"setId()

人造人

评论

0赞 Ivo 12/17/2021
问题也是。为什么要设置 ID?只是为了以后再找到它吗?在这种情况下,您可能希望使用 .标记可以是任何对象,包括字符串。您可以轻松地检查视图的标签,或者使用setTagsetIdgetTagfindViewWithTagfindViewById
0赞 MOHAMED SIKKANDAR AFZAL M 12/17/2021
哦,我不知道setTag,会检查一下谢谢!!

答:

2赞 Henry Twist 12/17/2021 #1

在 Android 中,所有视图 ID 都是整数 - 只是整数 ID 的标签。@+id/googleWebView

在本例中,表示它正在处理 ID 引用,这意味着这是应生成的新 ID。在后台,Android 将这些生成的 ID 存储在文件中,您可以通过编程方式访问它们。@id/+RR.id.{label}

评论

0赞 MOHAMED SIKKANDAR AFZAL M 12/17/2021
谢谢,如果 Web 视图是以编程方式在 XML 中未使用的,并且我需要将 id 设置为字符串?可能吗?还是需要生成唯一 ID 并设置为它?
2赞 Henry Twist 12/17/2021
如果它根本没有在 XML 中声明,那么你可以生成一个 ID - stackoverflow.com/questions/1714297/...。但是,我没有看到很多用例。
0赞 Ivo 12/17/2021 #2

当应用程序生成时,它实际上变成了一个 int。它将进入班级。要访问之前在 xml 文件中定义的任何 id,只需编写代码即可,因此在您的情况下:"@+id/googleWebview"RR.id.idName

view.setId(R.id.googleWebview);

例如