Android 在onClick中作为参数的视图是什么?

Android 在onClick中作为参数的视图是什么?,android,button,view,onclick,Android,Button,View,Onclick,我已经创建了一个自定义类CustomButton,其中扩展了Button类,并添加了一些额外的private属性以及一些setter和getter。在一个单独的活动中,我想调用一个onClickListener(),其中包含一个onClick方法,允许我访问这些方法,例如 onClick(View v) { v.getPropertyICreated(); //Then do something with that property } 然而,在Eclipse中,我似乎无法在视图上调用getP

我已经创建了一个自定义类
CustomButton
,其中扩展了
Button
类,并添加了一些额外的
private
属性以及一些setter和getter。在一个单独的活动中,我想调用一个
onClickListener()
,其中包含一个
onClick
方法,允许我访问这些方法,例如

onClick(View v) {
v.getPropertyICreated();
//Then do something with that property
}
然而,在Eclipse中,我似乎无法在视图上调用getProperty()。我假设,在本例中,作为参数的视图是按钮

1) 作为onClick的参数的视图是什么


2) 我将来如何调试才能看到视图到底是什么?(即,我可以调用Log.d(String arg,String arg)中的视图的什么方法,以便查看它是什么类型的视图)

视图v实际上是您设置onclicklistener的视图。我不知道getProperty()方法。如果您将视图强制转换为正确的类型(CustomButton或Button)并记录例如Button.getText(),则可以测试这一点。

您需要首先将其强制转换为您自己的类型才能访问您的方法,因为您的类型是
Button
的子类,它是
视图
的子类:

onClick(View v) {
CustomButton myButton = (CustomButton) v;
myButton.getProperty();
...
}

您需要将视图强制转换为自定义视图,例如:

onClick(View v) {
CustomButton customButton = (CustomButton) v;

customButton.getProperty();
}

抱歉,我只是把所有东西都做了一般化,创建了一个名为
getProperty
的方法,尽管我可能应该将它命名为
getCustomProperty
。但是,关于你对我的第二个问题的回答,为什么我a)必须发表意见?那不是一个未经检查的演员阵容吗?和b)如果我的按钮中没有文本会发生什么?您必须强制转换它,因为视图v没有您的自定义方法和其他方法,如getText()。如果您的按钮没有文本,getText()将返回一个空字符串(“”)。太好了,谢谢!接受您的回答,因为这是唯一一个回答我两个问题的答案:-)