所以如果我有一个LinearLayout
并且里面有几个孩子Views
,请说几句Buttons
一个TextView
和一个{{1} },使用CheckBox
的{{1}}我会得到一个未指定的LinearLayout
。需要注意的是,我没有使用xml,所以它都以编程方式完成。
getChildAt(x)
View
,无论如何,我可以找出它是public class CustomViewClass extends LinearLayout {
private Context context;
public CustomViewClass (Context context) {
super(context);
this.context = context;
setOrientation(LinearLayout.VERTICAL);
setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
setBackgroundColor(Color.DKGRAY);
// Code which adds Buttons and such to the LinearLayout
getChildAt(1)
}
}
是什么类型,无论是getChildAt(1)
还是View
还是其他任何行为?
答案 0 :(得分:0)
执行此操作的一种方法是致电getClass
。这将为您提供一个表示视图类型的Class
对象。
例如:
Class clazz = getChildAt(1).getClass();
上课后,你可以用它做各种各样的事情。例如得到名字:
System.out.println(clazz.getName());
现在你知道它是什么样的观点。
另一种方法是使用instanceof
运算符。这是一个例子:
if (getChildAt(1) instanceof TexView) {
// getChildAt(1) is a TextView or an instance of a subclass of TextView
}
答案 1 :(得分:0)
使用instanceOf方法。示例示例是
if (view instanceof ImageView)
或者您可以使用以下内容查找视图类型。但是如果你想对它做任何计算,那么实例是最好的选择。
view.getClass
if (view.getClass().getName().equalsIgnoreCase("android.widget.ImageView"))