Ale*_*nez 8 android android-view
我正在做一个小型库来封装适配器功能,我需要以编程方式获取视图的名称.例如:
<ImageView
android:id="@+id/**ivPerson**"
android:layout_width="80dp"
android:layout_height="80dp"/>
Run Code Online (Sandbox Code Playgroud)
现在,在代码中我有视图(ImageView),我需要获取视图的名称 - > ivPerson.我可以通过view.getId()获取id,但这不是我需要的.
有可能的?
我试过这个:
String name = context.getResources().getResourceEntryName(view.getId());
Run Code Online (Sandbox Code Playgroud)
但不行.
其View v名称如下:
String name = (v.getId() == View.NO_ID) ? "" :
v.getResources().getResourceName(v.getId()).split(":id/")[1];
Run Code Online (Sandbox Code Playgroud)
如果视图v没有名称,则为name空字符串""。
您可以通过将标记设置为id来实现,android:tag="ivPerson"
并使用它String name = view.getTag().toString()来获取标记的名称
你可以getResourceName(...)改用。
String fullName = getResources().getResourceName(view.getId());
Run Code Online (Sandbox Code Playgroud)
但是有一些问题。此方法将为您提供完整的视图路径,例如:"com.google:id/ivPerson"
无论如何,您可以使用此技巧来仅获取视图的名称:
String fullName = getResources().getResourceName(view.getId());
String name = fullName.substring(fullName.lastIndexOf("/") + 1);
Run Code Online (Sandbox Code Playgroud)
现在name将是"ivPerson"
| 归档时间: |
|
| 查看次数: |
5340 次 |
| 最近记录: |