이전 포스팅에서 Activity layout을 뷰 바인딩 방식으로 사용하는 방법에 대해 글을 작성했습니다
Activity도 ViewBinding방식으로 사용하는데 내가 만든 다이얼로그 layout도 이러한 방식으로 사용하면
너무 편할것 같다는 생각에 시도해 봤는데 결과는 동일하게 된다는 점입니다
먼저 Activity ViewBinding에 대해서는 다음 포스팅에서 확인 가능합니다
2022.09.15 - [안드로이드] - [Android] View Binding
먼저 다이얼로그 layout을 작성한 뒤 Dialog java class를 작성해 주세요
저는 사용자에게 확인을 받는 다이얼로그를 만들기 위해 이름을 ConfirmDialog로 정했습니다
package com.example.sw_system;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.example.sw_system.databinding.DialogConfirmBinding;
public class ConfirmDialog extends Dialog {
private Context context;
DialogConfirmBinding confirmBinding;
private String msg;
public ConfirmDialog(Context context,String msg){
super(context);
this.msg = msg;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
confirmBinding = DialogConfirmBinding.inflate(getLayoutInflater());
setContentView(confirmBinding.getRoot());
confirmBinding.confirmMsg.setText(msg);
confirmBinding.okBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dismiss();
}
});
confirmBinding.cancelBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dismiss();
}
});
}
}
Activity ViewBinding방식과 그냥 다를게 1도 없이 동일하지만
이전에 생각해보시면 ViewBinding의 제 1원칙이 있었죠
layout 파일 이름을 형식에 맞게 지어야 된다는 점인데 다이얼로그 또한 다르지 않습니다
activity_main.xml
activity_test.xml
이런식으로 activity의 경우 앞에 activity라는 것을 명시하고 언더바 뒤에 네이밍을 합니다
그럼 다이얼로그의 경우에는 어떻게 하면 될까요?
네 너무도 간단하게 activity 대신 dialog로 변경만 해주면 됩니다
그럼 제 ConfirmDialog는 layout 이름을 다음과 같이 만들 수 있겠네요
dialog_confirm.xml
이처럼 안드로이드 진영에서 제공하는 ViewBinding은 어느 layout에도 사용이 가능하고
layout 네이밍 법칙만 지켜주게 되면 해당 Class가 자동으로 적용되기 때문에 너무 편리한 기능입니다
'안드로이드' 카테고리의 다른 글
[Android] ProgressBar 막대 색상 변경 (2) | 2022.09.27 |
---|---|
[Android] 다이얼로그 뷰바인딩 wrap_content 고정되는 문제 해결 (6) | 2022.09.23 |
[Android] EditText 입력 끝나는 시점에 이벤트 받기 (10) | 2022.09.23 |
[Android] this and base files have different roots 에러해결 (1) | 2022.09.23 |
[Android] REST API GET 통신하기 (2) | 2022.09.22 |
댓글