充电桩app代码

AlertDialogUpdate.java 5.9KB

    package com.electric.chargingpile.view; import android.app.Dialog; import android.content.Context; import android.view.Display; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewTreeObserver; import android.view.WindowManager; import android.widget.Button; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; import android.widget.TextView; import androidx.constraintlayout.widget.ConstraintLayout; import com.electric.chargingpile.R; import com.electric.chargingpile.activity.ChatContentListActivity; import com.electric.chargingpile.application.MainApplication; import com.electric.chargingpile.util.ScreenUtils; public class AlertDialogUpdate { private Context context; private Dialog dialog; private LinearLayout lLayout_bg; private TextView txt_title; private TextView txt_msg; private Button btn_neg; private Button btn_pos; private Display display; private boolean showTitle = false; private boolean showMsg = false; private boolean showPosBtn = false; private boolean showNegBtn = false; private ImageView update_header; public AlertDialogUpdate(Context context) { this.context = context; WindowManager windowManager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); display = windowManager.getDefaultDisplay(); } public AlertDialogUpdate builder() { // 获取Dialog布局 View view = LayoutInflater.from(context).inflate(R.layout.view_alterdialog_update, null); // 获取自定义Dialog布局中的控件 lLayout_bg = (LinearLayout) view.findViewById(R.id.lLayout_bg); update_header = view.findViewById(R.id.update_header); txt_title = (TextView) view.findViewById(R.id.txt_title); txt_msg = (TextView) view.findViewById(R.id.txt_msg); btn_neg = (Button) view.findViewById(R.id.btn_neg); btn_neg.setVisibility(View.GONE); btn_pos = (Button) view.findViewById(R.id.btn_pos); btn_pos.setVisibility(View.GONE); // 定义Dialog布局和参数 dialog = new Dialog(context, R.style.AlertDialogStyle); dialog.setContentView(view); int width = (int) (ScreenUtils.getScreenWidth(MainApplication.context) * 0.75); // 调整dialog背景大小 lLayout_bg.setLayoutParams(new FrameLayout.LayoutParams(width, LayoutParams.WRAP_CONTENT)); int imageHeight = (int)(216.0/408.0*width); update_header.setLayoutParams(new ConstraintLayout.LayoutParams(width,imageHeight)); return this; } public AlertDialogUpdate setTitle(String title) { showTitle = true; if ("".equals(title)) { txt_title.setText("标题"); } else { txt_title.setText(title); } return this; } public AlertDialogUpdate setMsg(String msg) { showMsg = true; if ("".equals(msg)) { txt_msg.setText("内容"); } else { txt_msg.setText(msg); } ViewTreeObserver vto = txt_msg.getViewTreeObserver(); vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { int lineCount = txt_msg.getLineCount(); if (lineCount == 1) { txt_msg.setGravity(Gravity.CENTER); } else { txt_msg.setGravity(Gravity.CENTER | Gravity.LEFT); } return true; } }); return this; } public AlertDialogUpdate setCancelable(boolean cancel) { dialog.setCancelable(cancel); return this; } public AlertDialogUpdate setPositiveButton(String text, final OnClickListener listener) { showPosBtn = true; if ("".equals(text)) { btn_pos.setText("确定"); } else { btn_pos.setText(text); } btn_pos.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { listener.onClick(v); dialog.dismiss(); } catch (Exception e) { e.printStackTrace(); } } }); return this; } public AlertDialogUpdate setNegativeButton(String text, final OnClickListener listener) { showNegBtn = true; if ("".equals(text)) { btn_neg.setText("取消"); } else { btn_neg.setText(text); } btn_neg.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { listener.onClick(v); dialog.dismiss(); } }); return this; } private void setLayout() { if (!showPosBtn && !showNegBtn) { btn_pos.setText("确定"); btn_pos.setVisibility(View.VISIBLE); btn_pos.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); } if (showPosBtn && showNegBtn) { btn_pos.setVisibility(View.VISIBLE); btn_neg.setVisibility(View.VISIBLE); } if (showPosBtn && !showNegBtn) { btn_pos.setVisibility(View.VISIBLE); } if (!showPosBtn && showNegBtn) { btn_neg.setVisibility(View.VISIBLE); } } public void show() { setLayout(); dialog.show(); } public boolean isShowing() { if (dialog.isShowing()) { return true; } else { return false; } } }