android - 在 Android 中以编程方式获取 View 名称

标签 android android-view

我正在做一个小型库来封装适配器功能,我需要以编程方式获取 View 的名称。例如:

<ImageView
        android:id="@+id/**ivPerson**"
        android:layout_width="80dp"
        android:layout_height="80dp"/>

现在,在代码中我有 View (ImageView),我需要获取 View 的名称 --> ivPerson。我可以使用 view.getId() 获取 ID,但这不是我需要的。

有可能吗?

我试过这个:

String name = context.getResources().getResourceEntryName(view.getId());

但不起作用。

最佳答案

您可以改用 getResourceName(...)

String fullName = getResources().getResourceName(view.getId());

但是有一个问题。此方法将为您提供完整的 View 路径,例如:"com.google:id/ivPerson"

无论如何,您可以使用此技巧来仅获取 View 的名称:

String fullName = getResources().getResourceName(view.getId());
String name = fullName.substring(fullName.lastIndexOf("/") + 1);

现在 name 将完全是 "ivPerson"

关于android - 在 Android 中以编程方式获取 View 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34528116/

相关文章:

安卓和苹果手机。统一代码库可能吗?

android - Firebase 应用邀请无法发送电子邮件

java - Android 不支持换行 (\n)?

android - 以编程方式在 LinearLayout 中插入自定义 View ,拉伸(stretch)它并使其成为正方形

android - 如何在样式文件中定义可绘制对象的大小?

android - 如何在 onTouchEvent() 中检测单点触摸和多点触摸

javascript - 现在移动应用程序使用原生 ES6 安全吗?

java - 使用自定义 View 设置布局

android - 无限项的无限滚动

Android Opengl ES : GLUtils. glTexImage2D 导致 GL_INVALID_ENUM