AlertDialog
- 默认样式
- 单选样式
- 多选样式
- 自定义样式
效果图
class OnClick implements View.OnClickListener {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_dialog1:
AlertDialog.Builder builder = new AlertDialog.Builder(DialogActivity.this);
builder.setTitle("请回答").setMessage("你觉得课程如何")
.setIcon(R.drawable.user)
.setPositiveButton("棒", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ToastUtil.showShort(DialogActivity.this, "很诚实");
}
}).setNeutralButton("还行", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ToastUtil.showShort(DialogActivity.this, "再瞅瞅");
}
}).setNegativeButton("不好", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ToastUtil.showShort(DialogActivity.this, "睁眼说瞎话");
}
}).show();
break;
case R.id.btn_dialog2:
final String[] array = new String[]{"男", "女"};
AlertDialog.Builder builder1 = new AlertDialog.Builder(DialogActivity.this);
builder1.setTitle("选择性别").setItems(array, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ToastUtil.showLong(DialogActivity.this, array[which]);
}
}).show();
break;
case R.id.btn_dialog3:
final String[] array3 = new String[]{"男", "女"};
AlertDialog.Builder builder3 = new AlertDialog.Builder(DialogActivity.this);
builder3.setTitle("选择性别").setSingleChoiceItems(array3, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ToastUtil.showLong(DialogActivity.this, array3[which]);
dialog.dismiss();
}
}).setCancelable(false).show();
break;
case R.id.btn_dialog4:
final String[] array4 = new String[]{"唱歌", "跳舞", "写代码"};
boolean[] isSelected = new boolean[]{false, false, false};
AlertDialog.Builder builder4 = new AlertDialog.Builder(DialogActivity.this);
builder4.setTitle("选择兴趣").setMultiChoiceItems(array4, isSelected, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
ToastUtil.showLong(DialogActivity.this, array4[which] + ":" + isChecked);
}
}).setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
break;
case R.id.btn_dialog5:
AlertDialog.Builder builder5 = new AlertDialog.Builder(DialogActivity.this);
View view = LayoutInflater.from(DialogActivity.this).inflate(R.layout.layout_dialog, null);
EditText etUserName = view.findViewById(R.id.et_username);
EditText etPassWord = view.findViewById(R.id.et_password);
Button button = view.findViewById(R.id.et_login);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
builder5.setTitle("请先登录").setView(view).show();
break;
}
}
}
自定义样式layout
Progress
代码
activity_progress.xml
ProgressActivity
public class ProgressActivity extends AppCompatActivity {
private ProgressBar mPb3;
private Button pbBtn, mBtnProgressDialog1, mBtnProgressDialog2;
@SuppressLint("WrongViewCast")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_progress);
mPb3 = findViewById(R.id.pb3);
mPb3.setProgress(90);
mBtnProgressDialog1 = findViewById(R.id.btn_progress_dialog1);
mBtnProgressDialog2 = findViewById(R.id.btn_progress_dialog2);
pbBtn = findViewById(R.id.btn);
pbBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
handler.sendEmptyMessage(0);
}
});
mBtnProgressDialog1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ProgressDialog progressDialog = new ProgressDialog(ProgressActivity.this);
progressDialog.setTitle("提示");
progressDialog.setMessage("正在加载");
progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
ToastUtil.showLong(ProgressActivity.this, "cancel");
}
});
progressDialog.setCancelable(false);
progressDialog.show();
}
});
mBtnProgressDialog2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ProgressDialog progressDialog = new ProgressDialog(ProgressActivity.this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setTitle("提示");
progressDialog.setMessage("正在下载...");
progressDialog.setButton(BUTTON_POSITIVE, "棒", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
progressDialog.show();
}
});
}
@SuppressLint("HandlerLeak")
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (mPb3.getProgress() < 200) {
handler.postDelayed(runnable, 500);
}else {
ToastUtil.showShort(ProgressActivity.this, "加载完成");
}
}
};
Runnable runnable = new Runnable() {
@Override
public void run() {
mPb3.setProgress(mPb3.getProgress() + 5);
handler.sendEmptyMessage(0);
}
};
}
自定义Dialog
layout_custom_dialog.xml
CustomDialogActivity
public class CustomDialogActivity extends AppCompatActivity {
private Button mBtnDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_custom_dialog);
mBtnDialog = findViewById(R.id.btn_custom_dialog);
mBtnDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CustomDialog customDialog = new CustomDialog(CustomDialogActivity.this, R.style.CustomDialog);
customDialog.setTitle("提示").setMessage("确认删除此项?").setCancel("取消",new CustomDialog.IOnCancelListener() {
@Override
public void onCancel(CustomDialog dialog) {
}
}).setConfirm("确定1",new CustomDialog.IOnConfirmListener() {
@Override
public void onConfirm(CustomDialog dialog) {
}
}).show();
}
});
}
}
activity_dialog_activity.xml
CustomDialog Style