onclick 이벤트 적용하는 방법 정리해둔다.
1. xml에 직접적으로 연결시키기
보면 알겠지만 deprecated 됐다.
쓸 수는 있지만 지원을 안하니까 api버전이 다르면 작동 안할 수도 있으니 더 이상 쓰지말자.
2.OnClickListener 인터페이스 상속받아 사용
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
BtnOnClick btnOnClick= = new BtnOnClick();
Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(btnOnClick);
Button btn2 = (Button) findViewById(R.id.btn2);
btn2.setOnClickListener(btnOnClick);
} // 클래스를 따로 생성하여 이벤트 리스너 상속 class BtnOnClick implements View.OnClickListener { @Override public void onClick(View v)
{ switch (v.getId())
{ case R.id.btn1:
// btn1 동작
break;
case R.id.btn2:
// btn2 동작
break; }
}
}
}
3.익명 클래스 객체
Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(click);
Button btn2 = (Button) findViewById(R.id.btn2);
btn2.setOnClickListener(click);
View.OnClickListener click = new View.OnClickListener() {
@Override
public void onClick(View v)
{
switch (v.getId())
{ case R.id.btn1:
// btn1 동작 break;
case R.id.btn2:
// btn2 동작
break; } } };
4. Listener Class를 익명Class로 정의
click 이벤트가 어디서 처리되는지 쉽게 확인할 수 있고, 코드가 간결하기 때문에 자주 사용된다.
- 이벤트가 일어나는 view(Button 등)의 개수가 적거나, 이벤트가 일어나는 view 간의 연관성이 적은 경우
- 이벤트 핸들러 함수 내에서 익명 클래스 외부의 변수를 참조하지 않는 경우
- 간단한 view 클릭 이벤트 테스트 코드를 작성하는 경우
https://boheeee.tistory.com/23
출처
[Android] 안드로이드 여러 가지 방법으로 OnClickListener 사용하기
안녕하세요. 오늘은 안드로이드 OnClickListener를 사용하는 여러 가지 방법에 대해 알아보겠습니다. ( OnClickListener를 처음 접하시는 분은 적합하지 않은 글입니다. ) 안드로이드에서는 여러 방법으
boheeee.tistory.com
'프로그래밍 > 안드로이드' 카테고리의 다른 글
리사이클러뷰 - 안드로이드 (0) | 2022.08.22 |
---|---|
다중 이미지 가져오기 - 안드로이드 (0) | 2022.08.08 |
안드로이드 - StartActivityForResult 대체방법 BY Kotlin (0) | 2022.08.06 |
안드로이드 - Preperence (0) | 2022.05.11 |
안드로이드 - 파일의 생성(문자열 저장), 읽기, 삭제 (0) | 2022.05.11 |