OnClickListener будет получать саму кнопку, например R.id.Button01. Он не вернет вам индекс массива, поскольку он ничего не знает о том, как у вас есть ссылки на все кнопки, хранящиеся в массиве.
Вы можете просто использовать кнопку, которая передается в ваш onClickListener напрямую, без дополнительных поисков в вашем массиве. Такие как:
void onClick(View v)
{
Button clickedButton = (Button) v;
// do what I need to do when a button is clicked here...
switch (clickedButton.getId())
{
case R.id.Button01:
// do something
break;
case R.id.Button01:
// do something
break;
}
}
Если вы действительно настроены на поиск индекса массива нажатой кнопки, то вы можете сделать что-то вроде:
void onClick(View v)
{
int index = 0;
for (int i = 0; i < buttonArray.length; i++)
{
if (buttonArray[i].getId() == v.getId())
{
index = i;
break;
}
}
// index is now the array index of the button that was clicked
}
Но это действительно кажется самым неэффективным способом добиться этого. Возможно, если бы вы дали больше информации о том, чего вы пытаетесь достичь в вашем OnClickListener, я мог бы вам помочь.