Android 如何通过循环设置多个onClick()?
最近,我一直在做一个简单的桌面游戏android应用程序。这个游戏在7x7网格上进行,我为所有的方块制作了按钮 这不是我第一次这样做,不仅制作布局,而且为每个按钮编写Android 如何通过循环设置多个onClick()?,android,button,Android,Button,最近,我一直在做一个简单的桌面游戏android应用程序。这个游戏在7x7网格上进行,我为所有的方块制作了按钮 这不是我第一次这样做,不仅制作布局,而且为每个按钮编写onClick()都是一项艰巨的工作。多亏了矩阵数组(int state[7][7]和按钮板[]][]=新按钮[7][7]),我可以将所有49个代码塞进一个函数中,但写起来很简单 board[0][0]=(Button)findViewById(R.id.board00); board[0][1]=(Button)findViewB
onClick()
都是一项艰巨的工作。多亏了矩阵数组(int state[7][7]
和按钮板[]][]=新按钮[7][7]
),我可以将所有49个代码塞进一个函数中,但写起来很简单
board[0][0]=(Button)findViewById(R.id.board00);
board[0][1]=(Button)findViewById(R.id.board01);
int i;
for(i=0;i<2;i++){
board[0][i].setOnClickListener(new OnClickListener() {
public void onClick(View v){
my_function(0,i);
}
}
board[0][0]=(按钮)findviewbyd(R.id.board00);
板[0][1]=(按钮)findViewById(R.id.board01);
int i;
对于(i=0;i不要使用匿名类。创建一个完整的类。然后它可以有一个构造函数,您可以调用并传入参数。例如
private static class MyButtonListener implements OnClickListener {
int i;
int j;
public MyButtonListener(int i, int j) {
this.i = i;
this.j = j;
}
public void onClick(View v){
my_function(i, j);
}
}
然后在循环中,创建一个新的MyButtonListener(i,j)
,而不是一个匿名类。如果您想保留匿名类,那么这应该是可行的
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 7; j++){
final int ii = i;
final int jj = j;
board[j][i].setOnClickListener(new OnClickListener() {
public void onClick(View v){
my_function(ii, jj);
}
}
for(int i=0;i<7;i++){
对于(int j=0;j<7;j++){
最终int ii=i;
最终int jj=j;
板[j][i].setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
my_函数(ii,jj);
}
}
我想我没有太多理解。你能写一段关于创建新的MyButtonListener(I,j)的简短代码吗?