본문 바로가기
안드로이드

[Android] Dialog layout ViewBinding 사용하기

by 코딩히어로 2022. 9. 23.
728x90

1


이전 포스팅에서 Activity layout을 뷰 바인딩 방식으로 사용하는 방법에 대해 글을 작성했습니다

Activity도 ViewBinding방식으로 사용하는데 내가 만든 다이얼로그 layout도 이러한 방식으로 사용하면

너무 편할것 같다는 생각에 시도해 봤는데 결과는 동일하게 된다는 점입니다

먼저 Activity ViewBinding에 대해서는 다음 포스팅에서 확인 가능합니다

2022.09.15 - [안드로이드] - [Android] View Binding

 

[Android] View Binding

안드로이드가 코틀린 언어를 수용하면서 생긴 뷰 바인딩이라는 이론을 알게 되었는데 기존에 사용하던 뷰 참조 방식에서 정말 놀랍도록 편리합니다 예전 자바 시절부터 코딩을 하던 안드로이

codinghero.tistory.com

 

먼저 다이얼로그 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가 자동으로 적용되기 때문에 너무 편리한 기능입니다

 

728x90
반응형

댓글