Android获取布局父级ID

问题描述 投票:8回答:4

我想知道View和ViewParent有什么区别?我正在尝试获取ImageView的父代的ID,但是我不能这样做:

myImageView.getParent().getId();
<<
android layout parent
4个回答
8
投票
我想知道View和ViewParent有什么区别?

View是一个类,ViewParent是一个接口。

尽管许多常见的布局类实现了ViewParent接口,但不能保证。

您遇到的问题是myImageView.getParent()返回的ViewParent不会直接公开getId()方法。

正如其他人所说,使用...将ViewParent强制转换为View

((View) myImageView.getParent()).getId();

...应在编译时工作,但要注意以下...

    如果父级View未实现ViewParent接口,则强制转换将失败。
  1. 父级View必须在布局文件中定义为(例如)android:id=@+id/myParentViewId的资源ID,否则对getId的调用将返回null

2
投票
您必须将父视图转换为View,因此可以使用getId()来使用((View) myImageView.getParent()).getId()方法>

1
投票
环绕图像视图返回父布局ID。

0
投票
[当您有一个没有ID的父视图,但您有一个具有ID的孩子时,最好的选择是使用parent
© www.soinside.com 2019 - 2024. All rights reserved.