약 60개의 버튼이 필요해서 

버튼을 만들고 각각 findviewbyId를 하고 onclickListener를 주려고 생각하고 

노가다로 막 만들던 중 배열을 써서 하면 편하겠다고 생각하여 다시 해보았다.



/////////////////////////////////////////////////////////////


private Button[][] btnTime = null;
///////////////////////////////////

btnTime = new Button[5][11];
int[][] btnId = { {R.id.btn_mon_1, R.id.btn_mon_2, R.id.btn_mon_3, R.id.btn_mon...... },

    {생략},

생략

}


for(int i = 0; i < 5; i++){
for(int j = 0; j < 11; j++){
this.btnTime[i][j] = (Button) findViewById(btnId[i][j]);
}
}

for(int i = 0; i < 5; i++){
for(int j = 0; j < 11; j++){
this.btnTime[i][j].setOnClickListener(btnListener);
}
}
///////////////////////////////////////////////
private View.OnClickListener btnListener = new View.OnClickListener() {

@Override
public void onClick(View v) {

for(int i = 0; i < 5; i++){
for(int j = 0; j < 11; j++){
if(v.getId() == btnTime[i][j].getId()) {
btnTime[i][j].setText(i + " " + j);
}
}
}
}
};

////////////////////////////////////////////


R.id 들을 int배열에 담고 마찬가지로 button도 배열로 담아놓은뒤에

반복문을 이용해 findviewbyid를 해주고

클릭 리스너도 마찬가지로 반복문을 이용해 set해줍니다

+ Recent posts