之前写的三篇自定义文章如下:
- https://www.jianshu.com/p/b5f465003ab4
- https://www.jianshu.com/p/8297360ce5e7
- https://www.jianshu.com/p/17a1a22b267e
将以上三篇文章组合封装成为如下的一个依赖库。以后会对该库做不定期更新。以上三个不会再更新。推荐使用如下引用。使用方法如下:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.mamumu:mmDialog:1.2.0'
}
1,效果图如下:
2,如何使用:toast和loading可以写在baseActivity中,而dialog直接在对应activity中使用。
baseActivity代码如下:
package com.mumu.mmdialog.base;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import com.mumu.dialog.MMLoading;
import com.mumu.dialog.MMToast;
/**
* @author : zlf
* date : 2019/4/17
* github : https://github.com/mamumu
* blog : https://www.jianshu.com/u/281e9668a5a6
*/
public class BaseActivity extends AppCompatActivity {
private MMLoading mmLoading;
private MMToast mmToast;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
}
protected void showLoading() {
if (mmLoading == null) {
MMLoading.Builder builder = new MMLoading.Builder(this)
.setMessage("加载中...")
.setCancelable(false)
.setCancelOutside(false);
mmLoading = builder.create();
}else {
mmLoading.dismiss();
MMLoading.Builder builder = new MMLoading.Builder(this)
.setMessage("加载中...")
.setCancelable(false)
.setCancelOutside(false);
mmLoading = builder.create();
}
mmLoading.show();
}
protected void showLoading(String msg) {
if (mmLoading == null) {
MMLoading.Builder builder = new MMLoading.Builder(this)
.setMessage(msg)
.setCancelable(false)
.setCancelOutside(false);
mmLoading = builder.create();
}else {
mmLoading.dismiss();
MMLoading.Builder builder = new MMLoading.Builder(this)
.setMessage(msg)
.setCancelable(false)
.setCancelOutside(false);
mmLoading = builder.create();
}
mmLoading.show();
}
protected void hideLoading() {
if (mmLoading != null && mmLoading.isShowing()) {
mmLoading.dismiss();
}
}
protected void showToastSuccess(String msg) {
if (mmToast == null) {
MMToast.Builder builder=new MMToast.Builder(this)
.setMessage(msg)
.setSuccess(true);
mmToast=builder.create();
}else {
mmToast.cancel();
MMToast.Builder builder=new MMToast.Builder(this)
.setMessage(msg)
.setSuccess(true);
mmToast=builder.create();
}
mmToast.show();
}
protected void showToastFailure(String msg) {
if (mmToast == null) {
MMToast.Builder builder=new MMToast.Builder(this)
.setMessage(msg)
.setSuccess(false);
mmToast=builder.create();
}else {
mmToast.cancel();
MMToast.Builder builder=new MMToast.Builder(this)
.setMessage(msg)
.setSuccess(false);
mmToast=builder.create();
}
mmToast.show();
}
}
activity代码如下:
package com.mumu.mmdialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.mumu.dialog.MMAlertDialog;
import com.mumu.mmdialog.base.BaseActivity;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class MainActivity extends BaseActivity {
@BindView(R.id.button1)
Button button1;
@BindView(R.id.button2)
Button button2;
private String webUrl = "https://www.jianshu.com/u/281e9668a5a6";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
initView();
}
private void initView() {
}
private void showDialog1() {
MMAlertDialog.showDialog(MainActivity.this,
"标题",
"我是中国人,我爱我的祖国",
null,
"确定",
false,
null,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
}
private void showDialog2() {
MMAlertDialog.showDialog(this,
"标题",
"我是中国人,我爱我的祖国。祝祖国繁荣富强",
"取消",
"确定",
false,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
},
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
}
private void showDialogXieYi() {
final boolean[] misChecked = {false};
MMAlertDialog.showDialogXieYi(this,
"个人协议",
webUrl,
"我知道了",
"我已阅读并同意以上条款,下次不再提示",
false,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
},
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (misChecked[0]) {
Toast.makeText(MainActivity.this, "checkbox选中了--我知道了", Toast.LENGTH_SHORT).show();
}
dialog.dismiss();
}
}, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
misChecked[0] = true;
} else {
misChecked[0] = false;
}
}
});
}
private void showImageDialog() {
MMAlertDialog.showDialogImage(this,
"http://img0.imgtn.bdimg.com/it/u=3295048120,2386838883&fm=214&gp=0.jpg",
false,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
},
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
}
@OnClick({R.id.button1, R.id.button2, R.id.button3, R.id.button4,
R.id.button5, R.id.button6, R.id.button7, R.id.button8})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.button1:
showLoading();
//延迟3秒关闭
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
hideLoading();
}
}, 3000);
break;
case R.id.button2:
showLoading("正在校验信息");
//延迟3秒关闭
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
hideLoading();
}
}, 5000);
break;
case R.id.button3:
showToastSuccess("加载成功");
break;
case R.id.button4:
showToastFailure("加载失败");
break;
case R.id.button5:
showDialog1();
break;
case R.id.button6:
showDialog2();
break;
case R.id.button7:
showDialogXieYi();
break;
case R.id.button8:
showImageDialog();
break;
}
}
}