2014-03-31 70 views
4

我想知道View和ViewParent有什麼區別?我試圖讓一個ImageView父的標識,但這個我不能做:Android獲取佈局父級ID

myImageView.getParent().getId(); 

所以有另一種方式來獲得這個ID?

回答

6

我想知道的是什麼瀏覽和ViewParent之間的區別?

A View是一類,ViewParent是一個接口。

雖然許多常見佈局類實現了ViewParent接口,但不能保證。

您遇到的問題是myImageView.getParent()返回ViewParent,它不直接暴露getId()方法。

正如其他人所說,鑄造ViewParent到使用View ...

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

...應該在編譯時工作,但要注意以下事項......

  1. 如果父母View沒有實現ViewParent接口,那麼演員將失敗。
  2. View必須在佈局文件(例如)定義的資源ID android:[email protected]+id/myParentViewId或調用getId將返回null
2

你有你的父視圖轉換爲View,所以你可以使用getId()方法,用((View) myImageView.getParent()).getId()

0

周邊的ImageView返回父佈局ID。

android:id="@+id/returnid" 

例如:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/returnid" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <iamageView 
     android:id="@+id/image" 
     android:layout_width="match_parent" 
     android:layout_height="24dp" 
     android:text="test" 
     android:background="@drawable/white" 
     /> 

</RelativeLayout>