Skip to content

Android:Example:SpinnerDialog

Android의 SPINNER-TYPE 대화상자 출력방법.

Source code

package ---;

import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface.OnCancelListener;
import android.content.DialogInterface.OnDismissListener;

/**
 * 스피너(SPINNER)타입(TYPE) 대화상자 출력.<br>
 * 만약 새로운 대화상자를 생성하고 싶을 경우, 새로운 객체를 생성하도록 해야 한다.
 * 
 * @author cwlee
 * @since 2013-08-12
 */
public class SpinnerProgressDialog {

    /** 진행상황을 보여주기 위한 대화상자 객체. */
    private ProgressDialog _dialog = null;

    public SpinnerProgressDialog(Context c, String message) {
        init(c, message, null, null);
    }

    public SpinnerProgressDialog(Context c, String message, OnDismissListener on_dismiss) {
        init(c, message, on_dismiss, null);
    }

    public SpinnerProgressDialog(Context c, String message, OnDismissListener on_dismiss, OnCancelListener on_cancel) {
        init(c, message, on_dismiss, on_cancel);
    }

    /**
     * 대화상자를 초기화한다.
     * 
     * @param c
     *            is Android device context.
     * @param message
     *            is show message string.
     * @param on_dismiss
     *            is dismiss event.
     * @param on_cancel
     *            is cancel event.
     */
    private void init(Context c, String message, OnDismissListener on_dismiss, OnCancelListener on_cancel) {
        _dialog = new ProgressDialog(c);
        _dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        _dialog.setMessage(message);
        _dialog.setIndeterminate(true);
        if (on_dismiss != null) {
            _dialog.setOnDismissListener(on_dismiss);
        }
        if (on_cancel != null) {
            _dialog.setCancelable(true);
            _dialog.setOnCancelListener(on_cancel);
        }
    }

    /** 대화상자를 출력한다. */
    public void show() {
        if (_dialog != null) {
            _dialog.show();
            _dialog = null;
        }
    }

    /** 대화상자를 종료한다. */
    public void dismiss() {
        if (_dialog != null) {
            _dialog.dismiss();
            _dialog = null;
        }
    }
}

See also