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