14

View.getRoot()を返すViewので、を使用してルートビューがどれであるかを簡単に特定できますgetResourceName(View.getId())

View.getParent()View...、それは親でもあることを返すと思いますが、実際には、ViewParent有用なメソッド/フィールドがほとんどないように見えるインスタンスのみを返します。最悪だ。

それで、親のIDを知る方法はありますか?View'の親もであると思います。したがって、 mIDViewフィールドが必要です。

View.getParent()なぜグーグルはただ返品をさせなかったのか本当に不思議Viewです。それは、親以外のものViewが親になる可能性がある場合にのみ意味があり、私が知る限り、それはViewとそのサブクラスに限定されています。

4

3 に答える 3

19

ViewParentは、子を持つことができるすべてのビューが実装する単なるインターフェイスです。ほとんどの場合、返されるクラスは、、のViewGroupようなLinearLayout、またはのインスタンスになりますRelativeLayout。「名前」が何を意味するのか正確にはわかりませんが、クラス名を取得したい場合は、いつものように行うことができますview.getParent().getClass().getName()

于 2013-01-01T17:34:46.053 に答える
6

ドキュメントには、親が必ずしも a であるとは限らないと記載されていViewます。

public final ViewParent getParent ()

API レベル 1 で追加 このビューの親を取得します。親は ViewParent であり、必ずしも View ではないことに注意してください。

このビューの親を返します。

ただし、すべての実装はViewParentから継承しViewます。SDK のすべての実装はビューですが、これViewはインターフェースの使用から親を分離するための設計上の決定である必要があります。ViewParent

于 2013-01-01T18:15:45.227 に答える
3

最初にキャストしてみてください。たとえば、IDを取得しようとしているビューの親がTableRowである場合は、次のようにします。

((TableRow)View.getParent()).getID()
于 2013-01-01T18:22:59.000 に答える