在我的代码中,我有一个名为ArrayList<Buttons>
的{{1}}字段。
这些按钮中的每一个都调用(在XML中)相同的mButtons
函数onClick
。
该函数如下所示:
onButtonClick
但Android Studio会警告我public void onButtonClick(View view) {
int buttonIndex = mButtons.indexOf(view);
}
。
好的,我试图通过将Suspicious call to 'ArrayList.indexOf'
投射到view
来摆脱。
然后警告更改为Button
。
好吧,我尝试更改功能签名以接收Casting 'view' to 'Button' is redundant
而不是Button
。
但现在我对每个View
声明(XML)都有一个警告:Button
。
我真的在考虑添加Method 'onButtonClick' on '...Activity' has incorrect signature
,因为它似乎没有解决方法。
如果有人知道如何摆脱它,我将不胜感激。
答案 0 :(得分:7)
您之前可以转换为Button
行。
Button button = (Button) view;
int buttonIndex = mButtons.indexOf(button);
答案 1 :(得分:5)
作为一个额外的答案,你只需要在一个检查实例中包装该调用
if (view instanceof Button) {
buttonIndex = mButtons.indexOf(button);
}
基本上可疑的电话是说“不能保证这是一个有效的寻找对象”
(很抱歉,回复很慢,我在寻找答案时遇到了这个问题,我认为提供替代解决方案是最好的)