https://soo0100.tistory.com/1871
오늘은 이벤트를 관리하는 클래스를 별도로 만들어서
버튼 이벤트를 구현해보겠습니다. 사실 별도 클래스를 만드는 만큼 하나의 버튼 이벤트를 처리하기보다는
여러 개의 이벤트를 처리하는 게 더 효율적입니다.
실제 구현 시 이벤트 클래스를 구현하신다면 View 인자 값으로 각 컴포넌트 아이디를 식별하여
그에 맞는 이벤트를 구현해주시면 됩니다.
1. MainActivity 에선 버튼에 이벤트 클래스를 리스너로 등록한다
- 이벤트 클래스에서 MainActity 의 Context 에 접근하기위해서 Context 필드를 선언한다.
public class MainActivity extends AppCompatActivity {
// 이벤트 클래스에서 Context 를 참조하기 위해 선언.
public static Context mContext;
private TextView textView;
EditText eText;
Button textButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//컨텍스트를 저장하고
mContext = this;
Button button = findViewById(R.id.button10);
//이벤트 처리클래스를 버튼 클릭 리스너에 등록한다.
onClickT onClickT = new onClickT();
button.setOnClickListener(onClickT);
}
2. 이벤트 클래스를 구현한다.
클릭 인터페이스를 구현하고, OnClick 함수를 오버라이딩 한다.
class onClickT implements View.OnClickListener{
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.mContext,"인터페이스를 클래스로 구현",Toast.LENGTH_LONG).show();
}
- 이벤트 클래스를 구현 했으므로,
여러 컴포넌트의 onClick 이벤트를 한번 에 이곳에서 구현 할 수 있다.
if(view.getId()) 로 컴포넌트를 구별한다.
결과는 하기와 같다.
다음 포스팅에서는 버튼 리스너를 람다식으로 구현해보겠습니다.
감사합니다.
https://soo0100.tistory.com/1886
반응형
'앱 만들기 > 안드로이드 study' 카테고리의 다른 글
안드로이드 스튜디오 프로젝트 여러창에서 열기 (6) | 2022.07.02 |
---|---|
안드로이드 버튼 이벤트를 구현하는 방법 4가지 - 4 (4) | 2022.07.01 |
XML 과 커스텀 뷰 같이 사용하기 (8) | 2022.06.21 |
커스텀 뷰를 활용한 그리기 (10) | 2022.06.20 |
안드로이드 버튼 이벤트를 구현하는 방법 4가지 - 2 (12) | 2022.06.16 |
댓글