Android DialogUtils弹出窗工具类详解

作者:积少成多,逐渐深入 时间:2022-05-13 17:34:56 

本文实例为大家分享了Android DialogUtils弹出窗工具类的具体代码,供大家参考,具体内容如下

直接上代码吧!!!

代码拉过去都可以自行修改,上一部分效果图

可控制显示位置,顶部,居中,底部

Android DialogUtils弹出窗工具类详解Android DialogUtils弹出窗工具类详解Android DialogUtils弹出窗工具类详解 Android DialogUtils弹出窗工具类详解

工具类代码(style、layout、在文档的后面)


package com.vemo.common.utils;

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.text.InputFilter;
import android.text.InputType;
import android.text.TextUtils;
import android.text.format.DateFormat;
import android.util.SparseArray;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.vemo.common.R;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;

import cn.qqtheme.framework.entity.Province;
import cn.qqtheme.framework.picker.AddressPicker;

/**
* Created by Martin on 2021/10/17.
*/

public class DialogUitl {

public static final int INPUT_TYPE_TEXT = 0;
   public static final int INPUT_TYPE_NUMBER = 1;
   public static final int INPUT_TYPE_NUMBER_PASSWORD = 2;
   public static final int INPUT_TYPE_TEXT_PASSWORD = 3;

//第三方登录的时候用显示的dialog
   public static Dialog loginAuthDialog(Context context) {
       Dialog dialog = new Dialog(context, R.style.dialog);
       dialog.setContentView(R.layout.dialog_login_loading);
       dialog.setCancelable(false);
       dialog.setCanceledOnTouchOutside(false);
       return dialog;
   }

/**
    * 用于网络请求等耗时操作的LoadingDialog
    */
   public static Dialog loadingDialog(Context context, String text) {
       Dialog dialog = new Dialog(context, R.style.dialog);
       dialog.setContentView(R.layout.dialog_loading);
       dialog.setCancelable(false);
       dialog.setCanceledOnTouchOutside(false);
       if (!TextUtils.isEmpty(text)) {
           TextView titleView = (TextView) dialog.findViewById(R.id.text);
           if (titleView != null) {
               titleView.setText(text);
           }
       }
       return dialog;
   }

public static Dialog loadingDialog(Context context) {
       return loadingDialog(context, "");
   }

//普通提示框
   public static void showSimpleTipDialog(Context context, String content) {
       showSimpleTipDialog(context, null, content, false);
   }

public static void showSimpleTipDialog(Context context, String content, boolean dark) {
       showSimpleTipDialog(context, null, content, dark);
   }

//带标题弹窗
   public static void showSimpleTipDialog(Context context, String title, String content) {
       showSimpleTipDialog(context, title, content, false);
   }

public static void showSimpleTipDialog(Context context, String title, String content, boolean dark) {
       final Dialog dialog = new Dialog(context, dark ? R.style.dialog : R.style.dialog2);
       dialog.setContentView(R.layout.dialog_simple_tip);
       dialog.setCancelable(true);
       dialog.setCanceledOnTouchOutside(true);
       if (!TextUtils.isEmpty(title)) {
           TextView titleView = (TextView) dialog.findViewById(R.id.title);
           titleView.setText(title);
       }
       if (!TextUtils.isEmpty(content)) {
           TextView contentTextView = (TextView) dialog.findViewById(R.id.content);
           contentTextView.setText(content);
       }
       dialog.findViewById(R.id.btn_confirm).setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               dialog.dismiss();
           }
       });
       dialog.show();
   }

//确认,取消,带按钮弹窗
   public static void showSimpleDialogDark(Context context, String content, SimpleCallback callback) {
       new Builder(context)
               .setContent(content)
               .setBackgroundDimEnabled(true)
               .setCancelable(true)
               .setClickCallback(callback)
               .build()
               .show();
   }

public static void showSimpleDialog(Context context, String content, SimpleCallback callback) {
       showSimpleDialog(context, content, true, callback);
   }

public static void showSimpleDialog(Context context, String content, boolean cancelable, SimpleCallback callback) {
       showSimpleDialog(context, null, content, cancelable, callback);
   }

public static void showSimpleDialog(Context context, String title, String content, boolean cancelable, SimpleCallback callback) {
       new Builder(context)
               .setTitle(title)
               .setContent(content)
               .setCancelable(cancelable)
               .setClickCallback(callback)
               .build()
               .show();
   }

//可编辑弹窗
   public static void showSimpleInputDialog(Context context, String title, String hint, int inputType, int length, SimpleCallback callback) {
       new Builder(context).setTitle(title)
               .setCancelable(true)
               .setInput(true)
               .setHint(hint)
               .setInputType(inputType)
               .setLength(length)
               .setClickCallback(callback)
               .build()
               .show();
   }

public static void showSimpleInputDialog(Context context, String title, int inputType, int length, SimpleCallback callback) {
       showSimpleInputDialog(context, title, null, inputType, length, callback);
   }

public static void showSimpleInputDialog(Context context, String title, int inputType, SimpleCallback callback) {
       showSimpleInputDialog(context, title, inputType, 0, callback);
   }

public static void showSimpleInputDialog(Context context, String title, SimpleCallback callback) {
       showSimpleInputDialog(context, title, INPUT_TYPE_TEXT, callback);
   }

//所选项弹窗,效果图上有,可以传多个 传R.string  integer类型
   public static void showStringArrayDialog(Context context, Integer[] array, final StringArrayDialogCallback callback) {
       final Dialog dialog = new Dialog(context, R.style.dialog);
       dialog.setContentView(R.layout.dialog_string_array);
       dialog.setCancelable(true);
       dialog.setCanceledOnTouchOutside(true);
       Window window = dialog.getWindow();
       window.setWindowAnimations(R.style.bottomToTopAnim);
       WindowManager.LayoutParams params = window.getAttributes();
       params.width = WindowManager.LayoutParams.MATCH_PARENT;
       params.height = WindowManager.LayoutParams.WRAP_CONTENT;
       params.gravity = Gravity.BOTTOM;
       window.setAttributes(params);
       LinearLayout container = (LinearLayout) dialog.findViewById(R.id.container);
       View.OnClickListener itemListener = new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               TextView textView = (TextView) v;
               if (callback != null) {
                   callback.onItemClick(textView.getText().toString(), (int) v.getTag());
               }
               dialog.dismiss();
           }
       };
       for (int i = 0, length = array.length; i < length; i++) {
           TextView textView = new TextView(context);
           textView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DpUtil.dp2px(50)));
           textView.setTextColor(0xff323232);
           textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
           textView.setGravity(Gravity.CENTER);
           textView.setText(array[i]);
           textView.setTag(array[i]);
           textView.setOnClickListener(itemListener);
           container.addView(textView);
           if (i != length - 1) {
               View v = new View(context);
               v.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DpUtil.dp2px(1)));
               v.setBackgroundColor(0xfff5f5f5);
               container.addView(v);
           }
       }
       dialog.findViewById(R.id.btn_cancel).setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               dialog.dismiss();
           }
       });
       dialog.show();
   }

//所选项弹窗,效果图上有,可以传多个 直接传文字 String类型
   public static void showStringArrayDialog(Context context, SparseArray<String> array, final StringArrayDialogCallback callback) {
       final Dialog dialog = new Dialog(context, R.style.dialog);
       dialog.setContentView(R.layout.dialog_string_array);
       dialog.setCancelable(true);
       dialog.setCanceledOnTouchOutside(true);
       Window window = dialog.getWindow();
       window.setWindowAnimations(R.style.bottomToTopAnim);
       WindowManager.LayoutParams params = window.getAttributes();
       params.width = WindowManager.LayoutParams.MATCH_PARENT;
       params.height = WindowManager.LayoutParams.WRAP_CONTENT;
       params.gravity = Gravity.BOTTOM;
       window.setAttributes(params);
       LinearLayout container = (LinearLayout) dialog.findViewById(R.id.container);
       View.OnClickListener itemListener = new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               TextView textView = (TextView) v;
               if (callback != null) {
                   callback.onItemClick(textView.getText().toString(), (int) v.getTag());
               }
               dialog.dismiss();
           }
       };
       for (int i = 0, length = array.size(); i < length; i++) {
           TextView textView = new TextView(context);
           textView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DpUtil.dp2px(50)));
           textView.setTextColor(0xff323232);
           textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
           textView.setGravity(Gravity.CENTER);
           textView.setText(array.valueAt(i));
           textView.setTag(array.keyAt(i));
           textView.setOnClickListener(itemListener);
           container.addView(textView);
           if (i != length - 1) {
               View v = new View(context);
               v.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DpUtil.dp2px(1)));
               v.setBackgroundColor(0xfff5f5f5);
               container.addView(v);
           }
       }
       dialog.findViewById(R.id.btn_cancel).setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               dialog.dismiss();
           }
       });
       dialog.show();
   }

//时间选择器,调用的是系统的时间控件
   public static void showDatePickerDialog(Context context, final DataPickerCallback callback) {
       final Dialog dialog = new Dialog(context, R.style.dialog);
       dialog.setContentView(R.layout.dialog_date_picker);
       dialog.setCancelable(true);
       dialog.setCanceledOnTouchOutside(true);
       DatePicker datePicker = (DatePicker) dialog.findViewById(R.id.datePicker);
       final Calendar c = Calendar.getInstance();
       datePicker.init(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {

@Override
           public void onDateChanged(DatePicker view, int year, int month, int dayOfMonth) {
               c.set(year, month, dayOfMonth);
           }
       });
       View.OnClickListener listener = new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               if (v.getId() == R.id.btn_confirm) {
                   if (callback != null) {
                       if (c.getTime().getTime() > new Date().getTime()) {
                           ToastUtil.show(WordUtil.getString(R.string.edit_profile_right_date));
                       } else {
                           String result = DateFormat.format("yyyy-MM-dd", c).toString();
                           callback.onConfirmClick(result);
                           dialog.dismiss();
                       }
                   }
               } else {
                   dialog.dismiss();
               }
           }
       };
       dialog.findViewById(R.id.btn_cancel).setOnClickListener(listener);
       dialog.findViewById(R.id.btn_confirm).setOnClickListener(listener);
       dialog.show();
   }

public static class Builder {

private Context mContext;
       private String mTitle;
       private String mContent;
       private String mConfirmString;
       private String mCancelString;
       private boolean mIsHideTitle;
       private int mConfirmColor;
       private int mCancelColor;
       private boolean mCancelable;
       private boolean mBackgroundDimEnabled;//显示区域以外是否使用黑色半透明背景
       private boolean mInput;//是否是输入框的
       private boolean mGravityCenter = true;
       private String mHint;
       private int mInputType;
       private int mLength;
       private SimpleCallback mClickCallback;

public Builder(Context context) {
           mContext = context;
       }

public Builder setTitle(String title) {
           mTitle = title;
           return this;
       }

public Builder setContent(String content) {
           mContent = content;
           return this;
       }

public Builder setConfrimString(String confirmString) {
           mConfirmString = confirmString;
           return this;
       }

public Builder setCancelString(String cancelString) {
           mCancelString = cancelString;
           return this;
       }

public Builder setIsHideTitle(boolean isHideTitle) {
           mIsHideTitle = isHideTitle;
           return this;
       }

public Builder setConfirmColor(int confirmColor) {
           mConfirmColor = confirmColor;
           return this;
       }

public Builder setCancelColor(int cancelColor) {
           mCancelColor = cancelColor;
           return this;
       }

public Builder setCancelable(boolean cancelable) {
           mCancelable = cancelable;
           return this;
       }

public Builder setBackgroundDimEnabled(boolean backgroundDimEnabled) {
           mBackgroundDimEnabled = backgroundDimEnabled;
           return this;
       }

public Builder setInput(boolean input) {
           mInput = input;
           return this;
       }

public Builder setGravityCenter(boolean gravityCenter) {
           mGravityCenter = gravityCenter;
           return this;
       }

public Builder setHint(String hint) {
           mHint = hint;
           return this;
       }

public Builder setInputType(int inputType) {
           mInputType = inputType;
           return this;
       }

public Builder setLength(int length) {
           mLength = length;
           return this;
       }

public Builder setClickCallback(SimpleCallback clickCallback) {
           mClickCallback = clickCallback;
           return this;
       }

public Dialog build() {
           final Dialog dialog = new Dialog(mContext, mBackgroundDimEnabled ? R.style.dialog : R.style.dialog2);
           dialog.setContentView(mInput ? R.layout.dialog_input : R.layout.dialog_simple);
           dialog.setCancelable(mCancelable);
           dialog.setCanceledOnTouchOutside(mCancelable);
           TextView titleView = (TextView) dialog.findViewById(R.id.title);
           if (mIsHideTitle) {
               titleView.setVisibility(View.GONE);
           } else {
               if (!TextUtils.isEmpty(mTitle)) {
                   titleView.setText(mTitle);
               }
           }
           final TextView content = (TextView) dialog.findViewById(R.id.content);
           if (!TextUtils.isEmpty(mHint)) {
               content.setHint(mHint);
           }
           if (!TextUtils.isEmpty(mContent)) {
               content.setText(mContent);
               if (!mGravityCenter) {
                   content.setGravity(Gravity.LEFT);
               }
           }
           if (mInputType == INPUT_TYPE_NUMBER) {
               content.setInputType(InputType.TYPE_CLASS_NUMBER);
           } else if (mInputType == INPUT_TYPE_NUMBER_PASSWORD) {
               content.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
           } else if (mInputType == INPUT_TYPE_TEXT_PASSWORD) {
               content.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
           }
           if (mLength > 0 && content instanceof EditText) {
               content.setFilters(new InputFilter[]{new InputFilter.LengthFilter(mLength)});
           }
           TextView btnConfirm = (TextView) dialog.findViewById(R.id.btn_confirm);
           if (!TextUtils.isEmpty(mConfirmString)) {
               btnConfirm.setText(mConfirmString);
           }
           if (mConfirmColor != 0) {
               btnConfirm.setTextColor(mConfirmColor);
           }
           TextView btnCancel = (TextView) dialog.findViewById(R.id.btn_cancel);
           if (!TextUtils.isEmpty(mCancelString)) {
               btnCancel.setText(mCancelString);
           }
           if (mCancelColor != 0) {
               btnCancel.setTextColor(mCancelColor);
           }
           View.OnClickListener listener = new View.OnClickListener() {
               @Override
               public void onClick(View v) {
                   if (v.getId() == R.id.btn_confirm) {
                       if (mClickCallback != null) {
                           if (mInput) {
                               mClickCallback.onConfirmClick(dialog, content.getText().toString());
                           } else {
                               dialog.dismiss();
                               mClickCallback.onConfirmClick(dialog, "");
                           }
                       } else {
                           dialog.dismiss();
                       }
                   } else {
                       dialog.dismiss();
                       if (mClickCallback instanceof SimpleCallback2) {
                           ((SimpleCallback2) mClickCallback).onCancelClick();
                       }
                   }
               }
           };
           btnConfirm.setOnClickListener(listener);
           btnCancel.setOnClickListener(listener);
           return dialog;
       }

}

public interface DataPickerCallback {
       void onConfirmClick(String date);
   }

public interface StringArrayDialogCallback {
       void onItemClick(String text, int tag);
   }

public interface SimpleCallback {
       void onConfirmClick(Dialog dialog, String content);
   }

public interface SimpleCallback2 extends SimpleCallback {
       void onCancelClick();
   }

/**
    * 城市选择
      默认选中  province 省 city 市  district 县/区
    */
   public static void showCityChooseDialog(Activity activity, ArrayList<Province> list,
                                           String province, String city, String district, AddressPicker.OnAddressPickListener listener) {
       AddressPicker picker = new AddressPicker(activity, list);
       picker.setTextColor(0xff323232);
       picker.setDividerColor(0xffdcdcdc);
       picker.setAnimationStyle(R.style.bottomToTopAnim);
       picker.setCancelTextColor(0xff969696);
       picker.setSubmitTextColor(0xffff6131);
       picker.setTopLineColor(0xfff5f5f5);
       picker.setTopBackgroundColor(0xfff5f5f5);
       picker.setHeight(DpUtil.dp2px(250));
       picker.setOffset(5);
       picker.setHideProvince(false);
       picker.setHideCounty(false);
       picker.setColumnWeight(3 / 9.0f, 3 / 9.0f, 3 / 9.0f);
       if (TextUtils.isEmpty(province)) {
           province = "北京市";
       }
       if (TextUtils.isEmpty(city)) {
           city = "北京市";
       }
       if (TextUtils.isEmpty(district)) {
           district = "东城区";
       }
       picker.setSelectedItem(province, city, district);
       picker.setOnAddressPickListener(listener);
       picker.show();
   }

}

style


<style name="dialog" parent="AppTheme">
       <item name="android:windowFrame">@null</item>
       <item name="android:windowNoTitle">true</item>
       <item name="android:windowIsFloating">true</item>
       <item name="android:windowIsTranslucent">true</item>
       <item name="android:windowBackground">@color/transparent</item>
       <item name="android:backgroundDimAmount">0.5</item>
       <!--显示区域以外是否使用黑色半透明背景-->
       <item name="android:backgroundDimEnabled">true</item>
   </style>

<style name="dialog2" parent="AppTheme">
       <item name="android:windowFrame">@null</item>
       <item name="android:windowNoTitle">true</item>
       <item name="android:windowIsFloating">true</item>
       <item name="android:windowIsTranslucent">true</item>
       <item name="android:windowBackground">@color/transparent</item>
       <!--显示区域以外是否使用黑色半透明背景-->
       <item name="android:backgroundDimEnabled">false</item>
   </style>

<style name="bottomToTopAnim" parent="android:Animation">
       <item name="android:windowEnterAnimation">@anim/bottomview_anim_enter</item>
       <item name="android:windowExitAnimation">@anim/bottomview_anim_exit</item>
   </style>

<style name="bottomToTopAnim2" parent="android:Animation">
       <item name="android:windowEnterAnimation">@anim/bottomview_anim_enter_2</item>
       <item name="android:windowExitAnimation">@anim/bottomview_anim_exit_2</item>
   </style>

<style name="leftToRightAnim" parent="android:Animation">
       <item name="android:windowEnterAnimation">@anim/left_anim_enter</item>
       <item name="android:windowExitAnimation">@anim/left_anim_exit</item>
   </style>

layout

dialog_login_loading.xml


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="180dp"
   android:layout_height="40dp"
   android:background="@drawable/bg_loading_dialog"
   android:orientation="horizontal">

<LinearLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_centerInParent="true"
       android:orientation="horizontal">

<ProgressBar
           android:layout_width="24dp"
           android:layout_height="24dp"
           android:indeterminateBehavior="repeat"
           android:indeterminateDrawable="@drawable/anim_loading"
           android:indeterminateOnly="true" />

<TextView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_centerInParent="true"
           android:layout_gravity="center_vertical"
           android:layout_marginLeft="10dp"
           android:text="@string/login_auth_ing"
           android:textColor="@color/white"
           android:textSize="14sp" />

</LinearLayout>

</RelativeLayout>

dialog_loading.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="70dp"
   android:layout_height="70dp"
   android:background="@drawable/bg_loading_dialog"
   android:orientation="vertical">

<ProgressBar
       android:layout_width="24dp"
       android:layout_height="24dp"
       android:layout_gravity="center_horizontal"
       android:layout_marginTop="14dp"
       android:layout_marginBottom="8dp"
       android:indeterminateBehavior="repeat"
       android:indeterminateDrawable="@drawable/anim_loading"
       android:indeterminateOnly="true" />

<TextView
       android:id="@+id/text"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center_horizontal"
       android:text="@string/loading"
       android:textColor="@color/white"
       android:textSize="14sp" />

</LinearLayout>

//anim_loading
<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
                android:drawable="@mipmap/loading"
                android:pivotX="50%"
                android:pivotY="50%"
   />

//bg_loading_dialog
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
   <corners android:radius="5dp"/>
   <solid android:color="#b3000000"/>
</shape>

Android DialogUtils弹出窗工具类详解

dialog_simlpe_tip.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="280dp"
             android:layout_height="wrap_content"
             android:background="@drawable/bg_dialog"
             android:gravity="center_horizontal"
             android:orientation="vertical"
   >

<TextView
       android:id="@+id/title"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginBottom="15dp"
       android:layout_marginTop="15dp"
       android:gravity="center_horizontal"
       android:text="@string/dialog_tip"
       android:textColor="@color/textColor"
       android:textSize="15sp"
       />

<TextView
       android:id="@+id/content"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_marginBottom="15dp"
       android:layout_marginLeft="15dp"
       android:layout_marginRight="15dp"
       android:textColor="@color/textColor"
       android:textSize="14sp"
       android:gravity="center_horizontal"
       />

<View
       style="@style/line2"
       />

<TextView
       android:id="@+id/btn_confirm"
       android:layout_width="match_parent"
       android:layout_height="40dp"
       android:gravity="center"
       android:text="@string/confirm"
       android:textColor="@color/global"
       android:textSize="14sp"
       />
</LinearLayout>

dialog_data_picker.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="280dp"
   android:layout_height="wrap_content"
   android:background="@drawable/bg_dialog"
   android:orientation="vertical">

<DatePicker
       android:id="@+id/datePicker"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_marginLeft="10dp"
       android:layout_marginRight="10dp"
       android:calendarViewShown="false"
       android:datePickerMode="spinner" />

<View style="@style/line2" />

<LinearLayout
       android:layout_width="match_parent"
       android:layout_height="40dp">

<TextView
           android:id="@+id/btn_cancel"
           android:layout_width="0dp"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:gravity="center"
           android:text="@string/cancel"
           android:textColor="@color/textColor"
           android:textSize="14sp" />

<View
           android:layout_width="1dp"
           android:layout_height="match_parent"
           android:background="@color/gray2" />

<TextView
           android:id="@+id/btn_confirm"
           android:layout_width="0dp"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:gravity="center"
           android:text="@string/confirm"
           android:textColor="@color/global"
           android:textSize="14sp" />

</LinearLayout>
</LinearLayout>

dialog_input.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="280dp"
   android:layout_height="wrap_content"
   android:background="@drawable/bg_dialog"
   android:gravity="center_horizontal"
   android:orientation="vertical">

<TextView
       android:id="@+id/title"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginTop="15dp"
       android:gravity="center_horizontal"
       android:text="@string/dialog_tip"
       android:textColor="@color/textColor"
       android:textSize="15sp" />

<EditText
       android:id="@+id/content"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_marginLeft="15dp"
       android:layout_marginTop="15dp"
       android:layout_marginRight="15dp"
       android:layout_marginBottom="10dp"
       android:background="@drawable/bg_dialog_input"
       android:gravity="center"
       android:paddingLeft="10dp"
       android:paddingTop="10dp"
       android:paddingRight="10dp"
       android:paddingBottom="10dp"
       android:textColor="@color/textColor"
       android:textSize="14sp" />

<View style="@style/line2" />

<LinearLayout
       android:layout_width="match_parent"
       android:layout_height="40dp">

<TextView
           android:id="@+id/btn_cancel"
           android:layout_width="0dp"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:gravity="center"
           android:text="@string/cancel"
           android:textColor="@color/textColor"
           android:textSize="14sp" />

<View
           android:layout_width="1dp"
           android:layout_height="match_parent"
           android:background="@color/gray2" />

<TextView
           android:id="@+id/btn_confirm"
           android:layout_width="0dp"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:gravity="center"
           android:text="@string/confirm"
           android:textColor="@color/global"
           android:textSize="14sp" />

</LinearLayout>
</LinearLayout>

dialog_simple.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="280dp"
   android:layout_height="wrap_content"
   android:background="@drawable/bg_dialog"
   android:gravity="center_horizontal"
   android:orientation="vertical">

<TextView
       android:id="@+id/title"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginTop="15dp"
       android:gravity="center_horizontal"
       android:text="@string/dialog_tip"
       android:textColor="@color/textColor"
       android:textSize="15sp" />

<TextView
       android:id="@+id/content"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:layout_marginLeft="15dp"
       android:layout_marginTop="15dp"
       android:layout_marginRight="15dp"
       android:layout_marginBottom="15dp"
       android:gravity="center_horizontal"
       android:textColor="@color/textColor"
       android:textSize="14sp" />

<View style="@style/line2" />

<LinearLayout
       android:layout_width="match_parent"
       android:layout_height="40dp">

<TextView
           android:id="@+id/btn_cancel"
           android:layout_width="0dp"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:gravity="center"
           android:text="@string/cancel"
           android:textColor="@color/textColor"
           android:textSize="14sp" />

<View
           android:layout_width="1dp"
           android:layout_height="match_parent"
           android:background="@color/gray2" />

<TextView
           android:id="@+id/btn_confirm"
           android:layout_width="0dp"
           android:layout_height="match_parent"
           android:layout_weight="1"
           android:gravity="center"
           android:text="@string/confirm"
           android:textColor="@color/global"
           android:textSize="14sp" />

</LinearLayout>
</LinearLayout>

来源:https://blog.csdn.net/qq_21383035/article/details/120815767

标签:Android,DialogUtils,弹出窗
0
投稿

猜你喜欢

  • DatePicker日期滚动选择使用详解

    2022-12-09 04:13:50
  • idea切换分支的时候,忽略一些无用的修改设置

    2022-01-10 04:13:37
  • java多线程中的异常处理机制简析

    2021-11-18 01:54:39
  • C#怎样才能将XML文件导入SQL Server

    2022-02-16 17:51:13
  • android自定义组件实现仪表计数盘

    2023-12-23 21:27:41
  • c#如何使用 XML 文档功能

    2023-12-25 03:44:33
  • 一篇文章带你深入了解Java类加载

    2023-06-11 22:12:00
  • RecyclerView实现横向滚动效果

    2023-11-24 02:26:30
  • java生成json数据示例

    2023-10-30 04:06:45
  • VisualStudio2019安装C#环境的实现方法

    2021-11-02 18:36:31
  • SpringBoot自定义MessageConvert详细讲解

    2023-04-23 19:24:39
  • Lucene实现索引和查询的实例讲解

    2022-09-06 16:35:30
  • Javaweb El表达式实例详解

    2021-06-21 22:59:32
  • SpringBoot接口调用之后报404问题的解决方案

    2021-08-31 15:25:03
  • Java编程语言特性和优势

    2021-11-14 06:54:27
  • 手把手教你设置IntelliJ IDEA 的彩色代码主题的图文教程

    2022-08-22 00:15:25
  • C#使用符号表实现查找算法

    2022-08-07 01:16:45
  • 基于android中的各种颜色在drawable.xml中的值详解

    2022-03-30 01:56:18
  • Asp.Net中MVC缓存详解

    2023-06-08 13:44:45
  • Android 完全退出的实例详解

    2022-11-01 22:56:22
  • asp之家 软件编程 m.aspxhome.com