Skip to content

WaskDialog

KIM SEONG GYU edited this page Aug 11, 2020 · 2 revisions

WaskDialog

Builder 사용

메서드

  • setTitle(String title) 타이틀 지정
  • setMessage(String message) 다이얼로그 메시지 지정
  • setContent(int layoutRes)
  • setContentCallback(WaskDialog.ContentViewCallback callback) 적용한 컨텐츠를 조작하기 위한 콜백 추가
  • addHorizontalButton(String text, WaskDialog.OnClickListener listener)가로로 배열될 버튼을 추가
  • addVerticalButton(String text, WaskDialog.OnClickListener listener)세로로 배열될 버튼을 추가

주의

  • setMessage(String message)setContent(int layoutRes)를 함께 사용하면 예외가 발생하기 때문에 둘 중 하나만 사용해야 합니다.
  • 모든 속성은 Nullable 합니다.
  • 버튼 추가는 중복해서 가능합니다.
  • 가로 버튼과 세로 버튼을 모두 추가했을 경우, 세로 버튼을 위에 배치하고 가로 버튼은 가장 아래에 배치됩니다.

WaskDialog.ContentViewCallback

public interface ContentViewCallback {
    void onContentViewAttached(View view);
}
  • View view : 다이얼로그에 적용된 컨텐츠를 inflate한 View
    • 컨텐츠로 적용된 뷰에 접근하여 조작을 할 수 있습니다.

WaskDialog.OnClickListener

public interface OnClickListener {
    void onClick(WaskDialog dialog, View view);
}
  • WaskDialog dialog: 현재 띄워져있는 다이얼로그 객체
    • 다이얼로그를 닫거나 할 수 있습니다.
  • View view : setContent(int layoutRes)로 컨텐츠를 지정했을 때 컨텐츠에 대한 View
    • 컨텐츠 내부의 뷰를 컨트롤할 때 사용합니다.

예제코드

new WaskDialogBuilder()
    .setTitle("테스트 다이얼로그")
    .setContent(R.layout.test_layout)
    .addHorizontalButton("확인", (dialog, view) -> {
        String txt = ((EditText) view.findViewById(R.id.edittext)).getText().toString();
        Toast.makeText(this, txt, Toast.LENGTH_SHORT).show();
        dialog.dismiss();
    })
    .addHorizontalButton("지우기", (dialog, view) -> {
        ((EditText) view.findViewById(R.id.edittext)).setText(null);
    })
    .addHorizontalButton("취소" ,(dialog, view) -> {
        dialog.dismiss();
    })
    .build()
    .show(getSupportFragmentManager(), "test");

test_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <EditText
        android:id="@+id/edittext"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="테스트"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>
Clone this wiki locally