Android最简单的LoadingDialog

作者: 你在笑吗 | 来源:发表于2017-11-07 10:29 被阅读0次

Activity的基类

public class BaseAcitivity extends Activity {

  private AlertDialog alertDialog;

  public void showLoadingDialog() {
      alertDialog = new AlertDialog.Builder(this).create();
      alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable());
      alertDialog.setCancelable(false);
      alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
          @Override
          public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
              if (keyCode == KeyEvent.KEYCODE_SEARCH || keyCode == KeyEvent.KEYCODE_BACK)
                  return true;
              return false;
          }
      });
      alertDialog.show();
      alertDialog.setContentView(R.layout.loading_alert);
      alertDialog.setCanceledOnTouchOutside(false);
  }

  public void dismissLoadingDialog() {
      if (null != alertDialog && alertDialog.isShowing()) {
          alertDialog.dismiss();
      }
  }
}

Fragment的基类


public class BaseFragment extends Fragment {
    private AlertDialog alertDialog;
    public void showLoadingDialog() {
        alertDialog = new AlertDialog.Builder(getActivity()).create();
        alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable());
        alertDialog.setCancelable(false);
        alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
            @Override
            public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_SEARCH || keyCode == KeyEvent.KEYCODE_BACK)
                    return true;
                return false;
            }
        });
        alertDialog.show();
        alertDialog.setContentView(R.layout.loading_alert);
        alertDialog.setCanceledOnTouchOutside(false);
    }

    public void dismissLoadingDialog() {
        if (null != alertDialog && alertDialog.isShowing()) {
            alertDialog.dismiss();
        }
    }
}

XML:loading_alert

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent">

    <ProgressBar
        android:id="@+id/progressBar1"
        android:layout_width="50dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:layout_gravity="center_horizontal"
        style="@style/AppTheme.NoActionBar"
        />

</RelativeLayout>

在styles.xml中添加

<style name="AppTheme.NoActionBar">
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
</style>

代码已经全部贴完,只需要复制Activity,Fragment的基类。然后自己的去继承这些。
用showLoadingDialog()方法开启LoadingDialog
用dismissLoadingDialog()方法关闭LoadingDialog
可以在原有的基础上修改xml布局实现更漂亮的Loading

相关文章

网友评论

    本文标题:Android最简单的LoadingDialog

    本文链接:https://www.haomeiwen.com/subject/mupdmxtx.html