Java 活动和视图的findViewById的超级类型

Java 活动和视图的findViewById的超级类型,java,android,android-activity,android-view,Java,Android,Android Activity,Android View,您可以在View上调用findViewById,也可以调用Activity。现在我需要根据具体情况对这两种情况调用它。我希望避免类型检查或空检查,并使用其中任何一种,但希望在传递参数时将其转换为一种类型 invikefindViewById是否有类似于公共接口的东西?因为从源代码看,它似乎只是为两者实现的,没有连接到超级类或接口。您可以在活动中执行的操作是获取装饰视图,您可以在该视图上调用findViewById public void myMethodRequiringView(View vi

您可以在
View
上调用
findViewById
,也可以调用
Activity
。现在我需要根据具体情况对这两种情况调用它。我希望避免类型检查或空检查,并使用其中任何一种,但希望在传递参数时将其转换为一种类型


invike
findViewById
是否有类似于公共接口的东西?因为从源代码看,它似乎只是为两者实现的,没有连接到超级类或接口。

您可以在
活动中执行的操作是获取装饰视图,您可以在该视图上调用
findViewById

public void myMethodRequiringView(View view) {
    view.findViewById(...);
}
活动中

myMethodRequiringView(getWindow().getDecorView());
片段中

myMethodRequiringView(rootView);

如果您查看
activity
Window
Android类的源代码,您会发现这正是
activity.findViewById
中所称的。不,没有通用接口。我想不出你需要它的任何理由。你到底想干什么?而且,即使有一个不能阻止空检查的需要。@Gabeschen是的,很好。我使用片段来显示片段中的内容以及活动。重复使用相同的布局。在每种情况下,我都需要使用片段视图或活动来查找元素。但我想还有第三种方法,就是回到白板上。
public void myMethodRequiringView(View view) {
    view.findViewById(...);
}