AndroidStudio代码知识库

Dialog提示信息,确认或者取消:确认方法mPresenter.getSaleTicket(billid, type)  取消方法resetSellData()
DialogUtil.showDialog("温馨提示", "获取小票失败,是否重试?", false
        , ((dialog, which) -> mPresenter.getSaleTicket(billid, type)), ((dialog, which) -> resetSellData()));

DialogUtil类:

package com.soooft.android.baicaiposlite.utils;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import com.soooft.android.baicaiposlite.R;
import com.soooft.android.baicaiposlite.mvp.view.widget.CProgressDialog;


/**
 * @author Fanxl
 *         Create by 2017/02/24
 */

public class DialogUtil {

    private static CProgressDialog loadingDialog;

    public static void showLoading(boolean cancelable, String message) {
        if (loadingDialog == null) {
            loadingDialog = new CProgressDialog(Util.getTopActivity(), cancelable);
        }
        loadingDialog.setCancelable(cancelable);
        loadingDialog.show();
        loadingDialog.setProgressText(message);
    }

    public static void dismissLoading() {
        if (null != loadingDialog) {
            if (loadingDialog.isShowing()) {
                loadingDialog.dismiss();
            }
        }
    }


    /**
     * @param title   title
     * @param content content
     * @return dialog
     */
    public static AlertDialog showDialog(String title, String content) {
        return showDialog("提示", content, null);
    }

    /**
     * @param title            title
     * @param content          content
     * @param positiveListener positive
     * @return dialog
     */
    public static AlertDialog showDialog(String title, String content, DialogInterface.OnClickListener positiveListener) {
        return showDialog(title, content, true, positiveListener, null);
    }

    /**
     * @param title            title
     * @param content          content
     * @param positiveListener positive
     * @param negativeListener negative
     * @return dialog
     */
    public static AlertDialog showDialog(String title, String content,
                                         DialogInterface.OnClickListener positiveListener,
                                         DialogInterface.OnClickListener negativeListener) {
        return showDialog(title, content, false, positiveListener, negativeListener);
    }

    /**
     * @param title            title
     * @param content          content
     * @param cancelable       cancelable
     * @param positiveListener positive
     * @param negativeListener negative
     * @return dialog
     */
    public static AlertDialog showDialog(String title, String content,
                                         boolean cancelable,
                                         DialogInterface.OnClickListener positiveListener,
                                         DialogInterface.OnClickListener negativeListener) {

        AlertDialog.Builder builder = new AlertDialog.Builder(Util.getTopActivity());
        builder.setTitle(title)
                .setMessage(content)
                .setIcon(R.mipmap.ic_launcher)
                .setPositiveButton("确定", positiveListener)
                .setCancelable(cancelable);

        if (negativeListener == null) {
            builder.setNegativeButton("取消", (dialog, which) -> {

            });
        } else {
            builder.setNegativeButton("取消", negativeListener);
        }

        builder.show();
        return builder.create();
    }
}

自定义进度条:

/**
 * 自定义进度条类
 *
 * @author guilin
 * @date 16/5/13
 */
public class CProgressDialog extends Dialog {

    TextView tvProgressText;

    public CProgressDialog(Context context) {
        this(context, true);
    }

    public CProgressDialog(Context context, boolean cancelable) {
        super(context, R.style.DefaultProgressDialog);
        this.setCancelable(cancelable);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_progress);
        tvProgressText = (TextView) findViewById(R.id.tv_progress_text);
    }

    public void setProgressText(String text) {
        tvProgressText.setText(text);
    }
}

 封装:

protected CProgressDialog loadingDialog;
protected void showLoadingDialog() {
    showLoadingDialog(true, "加载中...");
}

/**
 * 显示进度Dialog
 */
protected void showLoadingDialog(boolean cancelable, String progressText) {
    if (loadingDialog == null) {
        loadingDialog = new CProgressDialog(this, cancelable);
    }
    loadingDialog.setCancelable(cancelable);
    loadingDialog.show();
    loadingDialog.setProgressText(progressText);
}

protected void showLoadingDialog(String progressText) {
    showLoadingDialog(true, progressText);
}

/**
 * 取消进度Dialog
 */
protected void dismissLoadingDialog() {
    if (loadingDialog != null &&
            loadingDialog.isShowing()) {
        loadingDialog.dismiss();
    }
}

调用:

protected void showLoadingDialog() {
    if (mActivity == null) {
        ((BaseActivity) getActivity()).showLoadingDialog();
    } else {
        ((BaseActivity) mActivity).showLoadingDialog();
    }
}

猜你喜欢

转载自blog.csdn.net/a1003434346/article/details/83959201
今日推荐