获取视图实例的父视图类

时间:2013-07-20 07:42:59

标签: android class view parent instanceof

如果我的View是Button的一个实例,我需要一个获取信息的方法。

MyButton是Button的子类。

public void onCreate(Bundle s) 
{
    ...
    MyButton button = new MyButton(activity);
    getViewType(button);
}

private <V extends View> V getViewClass(V view) 
{
    Class<V> clazz = (Class<T>) view.getClass();
    if (clazz instanceof Button) {
        return Button.class; //the information I need to get
    }
}

instanceof在这里不起作用。 我可以将clazz与Classes进行比较,如下所示。但是如果这个视图实例是Button类的子代,我需要这些信息。

if (clazz == Button.class) ... //returns false
if (clazz == MyButton.class) ... //returns true

修改

我明白了。解决方案:

if (Button.class.isAssignableFrom(clazz)) 
{ 
    ... 
}

1 个答案:

答案 0 :(得分:0)

为什么不这样做?

private <V extends View> V getViewClass(V view) 
{        
    if (view instanceof Button) {
        return Button.class; //the information I need to get
    }
}