android各种提示Dialog 弹出框

举报
再见孙悟空_ 发表于 2022/01/13 23:02:00 2022/01/13
1.4k+ 0 0
【摘要】 开发过程中 经常需要各种弹出框 用来做提示  或者 展示一些 数据信息。写了一个 DialogUtil , 话不多说 直接上代码 ,希望对大家有帮助。 public static Dialog getProcessDialog(Activity activity, CharSequence message, ...

开发过程中 经常需要各种弹出框 用来做提示  或者 展示一些 数据信息。写了一个 DialogUtil , 话不多说 直接上代码 ,希望对大家有帮助。


       public static Dialog getProcessDialog(Activity activity, CharSequence message,
              boolean dismissTouchOutside, boolean cancelable) {
          final LayoutInflater inflater = LayoutInflater.from(activity);
          View v = inflater.inflate(R.layout.progress_hud, null);
          Dialog dialog = getCustomDialog(activity, v, dismissTouchOutside, cancelable, -1);
          if (dismissTouchOutside) {
               dialog.setCanceledOnTouchOutside(true);
           } else {
               dialog.setCanceledOnTouchOutside(false);
           }
          ImageView spinner = (ImageView) v.findViewById(R.id.spinnerImageView);
           ((AnimationDrawable) spinner.getBackground()).start();
          TextView messageTv = (TextView) v.findViewById(R.id.message);
          if (TextUtils.isEmpty(message)) {
               messageTv.setVisibility(View.GONE);
           } else {
               messageTv.setText(message);
               messageTv.setVisibility(View.VISIBLE);
           }
          return dialog;
       }
       public static Dialog getCustomDialog(final Activity activity, View view, boolean dismissTouchOutside,
              boolean cancelable, int theme) {
          //Dialog dialog = theme > 0 ? new FullScreenDialogHUD(activity, theme)
          // : new Dialog(activity, R.style.Dialog_FullScreen);
          Dialog dialog = new Dialog(activity, R.style.Dialog_FullScreen);
           dialog.setContentView(view);
           dialog.setCancelable(cancelable);
           dialog.setCanceledOnTouchOutside(dismissTouchOutside);
          if (!cancelable) {
               dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
                  @Override
                  public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                      if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
                           dialog.dismiss();
                           activity.finish();
                       }
                      return false;
                   }
               });
           }
          return dialog;
       }
       public static Dialog getOneButtonDialog(final Activity activity, String content,
        boolean dismissTouchOutside, boolean cancelable,
        DialogInterface.OnClickListener confirmOnClickListener) {
          Dialog dialog = new AlertDialog.Builder(activity)
                   .setPositiveButton(R.string.confirm, confirmOnClickListener)
                   .setCancelable(cancelable)
                   .setMessage(content)
                   .create();
           dialog.setCanceledOnTouchOutside(dismissTouchOutside);
          if (!cancelable) {
               dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
                  @Override
                  public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                      if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
                           dialog.dismiss();
                           activity.finish();
                       }
                      return false;
                   }
               });
           }
          return dialog;
       }
       public static Dialog getButtonsDialog(Activity activity, int resId,
        DialogInterface.OnClickListener confirmOnClickListener) {
          return getButtonsDialog(activity, activity.getString(resId), true, true, confirmOnClickListener,
                  null);
       }
       public static Dialog getButtonsDialog(Activity activity, String content,
        DialogInterface.OnClickListener confirmOnClickListener) {
          return getButtonsDialog(activity, content, true, true, confirmOnClickListener, null);
       }
       public static Dialog getButtonsDialog(Activity activity, String content, boolean dismissTouchOutside,
        boolean cancelable, DialogInterface.OnClickListener confirmOnClickListener,
        DialogInterface.OnClickListener cancelOnClickListener) {
          Dialog dialog = new AlertDialog.Builder(activity)
                   .setNegativeButton(R.string.cancel, cancelOnClickListener)
                   .setPositiveButton(R.string.confirm, confirmOnClickListener)
                   .setCancelable(cancelable)
                   .setMessage(content)
                   .create();
           dialog.setCanceledOnTouchOutside(dismissTouchOutside);
          return dialog;
       }
       progress_hud.xml
       <?xml version="1.0" encoding="utf-8"?>
       <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:orientation="vertical"
           android:gravity="center_horizontal"
           android:background="@android:color/transparent">
           <ImageView
               android:id="@+id/spinnerImageView"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:background="@anim/spinner"/>
           <TextView
               android:id="@+id/message"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_marginTop="15dp"
               android:textColor="#FFFFFF"/>
       </LinearLayout>
       style   Dialog_FullScreen
       <style name="Dialog.FullScreen" parent="Theme.AppCompat.Dialog">
           <item name="android:windowFrame">@null</item>
           <item name="android:windowIsFloating">true</item>
           <item name="android:windowContentOverlay">@android:color/transparent</item>
           <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
           <item name="android:windowIsTranslucent">true</item>
           <item name="android:windowNoTitle">true</item>
           <item name="android:windowFullscreen">true</item>
           <item name="android:windowBackground">@android:color/transparent</item>
           <item name="android:backgroundDimEnabled">true</item>
       </style>
   
  




有这些  其他弹出个人信息框 都可以自定义用getCustomDialog这个方法 传 对应的 view 实现。很方便。
希望对大家有帮助。

文章来源: wukong.blog.csdn.net,作者:再见孙悟空_,版权归原作者所有,如需转载,请联系作者。

原文链接:wukong.blog.csdn.net/article/details/50536915

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。