反正有什么类型的View View是什么?

时间:2017-07-29 01:41:57

标签: android view childviews

所以如果我有一个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还是其他任何行为?

2 个答案:

答案 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"))