건프의 소소한 개발이야기

[안드로이드] Material Dialog 관련 라이브러리 사용법 (2) 본문

개발 이야기/안드로이드 이야기

[안드로이드] Material Dialog 관련 라이브러리 사용법 (2)

건강한프로그래머 2016. 5. 24. 20:27

안녕하세요, 건프입니다.


앞에서 Material Dialog 적용법과 간단한 사용법(Basic Dialog) 에 대해 알아봤습니다.


http://ljs93kr.tistory.com/13


이번엔 좀 더 자유롭게 이용하는 방법에 대해서 알아보고자 합니다.



1. 리스트 다이얼로그 (List Dialog)


new MaterialDialog.Builder(context)
.items(R.array.coupon_work)
.itemsCallback(new MaterialDialog.ListCallback() {
@Override
public void onSelection(MaterialDialog dialog, View view, int which, CharSequence text) {
final CouponWork couponWork = new CouponWork(context);
switch(which){
case 0:
couponWork.doMakeStamp(item.getCouponId(), 1);
break;
case 1:
break;
case 2:
break;
case 3:


break;

}
}
})
.negativeText(R.string.btn_negative_text)
.show();

타이틀을 정해주고 넣어주고 싶으면

.title() 로 정해주면 됩니다.

위의 경우에는 타이틀은 제가 없앴습니다.


리스트의 선택되는 구분자는 which 값을 이용하시면 됩니다.



결과 화면 입니다




2. 테마 다이얼로그(Theme Dialog)


테마도 입힐 수 있습니다 :)


new MaterialDialog.Builder(context)
.title("쿠폰삭제")
.content("쿠폰을 정말 삭제할겁니까?")
.positiveText("확인")
.negativeText("취소")
.onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
couponWork.deleteCoupon(item.getCouponId(), item.getStoreId());
}
})
.theme(Theme.DARK)
.show();


또한 콜백메소드도 언제든지 위 와 같이 추가하여, 로직을 관리할 수 있습니다.



이쁘죵? ㅎㅎ



콜백 메소드를 관리하는 api 입니다.



new MaterialDialog.Builder(this)
    .onPositive(new MaterialDialog.SingleButtonCallback() {
        @Override
        public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
            // TODO
        }
    })
    .onNeutral(new MaterialDialog.SingleButtonCallback() {
        @Override
        public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
            // TODO
        }
    })
    .onNegative(new MaterialDialog.SingleButtonCallback() {
        @Override
        public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
            // TODO
        }
    })
    .onAny(new MaterialDialog.SingleButtonCallback() {
        @Override
        public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
            // TODO
        }
    });


점점 이쁘고 편리하다는 것을 느끼게 되네요 ㅎㅎ

Comments