일단 인터페이스 선언을 합니다.
public class MainActivity extends AppCompatActivity implements View.OnClickListener
인터페이스 선언을 하면 에러가 날텐데
그리고 OnCreate() 밖에다
public void onClick(View v) {
switch(v.getId()) {
case R.id.btn1 :
버튼클릭시 작동내용
break;
case R.id.btn2 :
버튼클릭시 작동내용
break;
.
.
.
하시면 에러가 사라져요!
그리고 OnCreate() 안에다가
btn1.setOnClickListener(this);
쓰시면 됩니다 ㅎㅎ
이러면 장점이 버튼 일일이 리스너를 안 만들어도 되서 코드가 간결해져요~
더 간단하게 한다면
((Button)findViewById(R.id.btn1)).setOnClickListener(this);
로도 쓸 수 있습니다!
만약 버튼이 너무 많아 이렇게 쓰는 것조차 힘들다면
for문을 돌려서 한번에 선언을 할 수도 있습니다.
for(int i=0; i<버튼개수; i++)
((Button)findViewById(R.id.btn01+i)).setOnClickListener(this);
이런식으로요 ㅎㅎ
for문을 돌릴 땐 btn1보다는 btn01을 추천드리는데 버튼이 10개가 넘어갈 경우
1, 2, 3.... 이 아니라
1, 10, 11, ..., 2, 3이런식으로 되기 때문이죠!
틀린부분 지적은 환영합니다!
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 암시적 인텐트(Intent) (0) | 2018.04.03 |
---|