一.常用对话框
1.普通对话框
public void btn(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("寿命减少机");
builder.setMessage("你的寿命要减少一天了");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
2.单选对话框
public void btn1(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("你是块死了吗,还是已经死了");
final String[] aaa = new String[]{"快点死","马上死","已经死","死"};
builder.setSingleChoiceItems(aaa, 3, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, aaa[which], Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你总算是死了", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "怎么还没死", Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
3.多选对话框
public void btn2(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("你是什么品种的癞蛤蟆");
final String[] s = new String[]{"随机","土狗","憨批","想屁吃"};
final boolean[] b = new boolean[]{false,false,false,false};
builder.setMultiChoiceItems(s, b, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked){
Toast.makeText(MainActivity.this, "你是"+s[which]+"类型的癞蛤蟆", Toast.LENGTH_SHORT).show();
}
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
for (int i = 0; i <b.length ; i++) {
if (b[i]){
Toast.makeText(MainActivity.this,"你是"+s[i]+"类型的癞蛤蟆", Toast.LENGTH_SHORT).show();
}
}
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "怎么还没死", Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}
4.自定义内容对话框(加图点击)
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("来看美女啊");
View inflate = LayoutInflater.from(this).inflate(R.layout.aleat, null);
builder.setView(inflate);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "怎么肥似小老弟", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你舍得这个美女吗", Toast.LENGTH_SHORT).show();
}
});
final AlertDialog alertDialog = builder.create();
ImageView iv = inflate.findViewById(R.id.MV);
iv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
alertDialog.dismiss();
}
});
alertDialog.show();
5.倒计时对话框
public void but(View view) {
final ProgressDialog dialog = new ProgressDialog(this);
dialog.setTitle("这里是标题");
dialog.setMax(100);
dialog.setProgress(10);
dialog.setSecondaryProgress(20);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
int index = 0;
@Override
public void run() {
index += 10;
dialog.setProgress(index);
if (index>=100){
timer.cancel();
dialog.dismiss();
}
}
},1000,1000);
dialog.show();
}
6.日期对话框
public void but1(View view) {
Calendar calendar = Calendar.getInstance();
DatePickerDialog dialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Toast.makeText(MainActivity.this, year+"年"+(month+1)+"月"+dayOfMonth+"日", Toast.LENGTH_SHORT).show();
}
},calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DAY_OF_MONTH));
dialog.show();
}
7.时间对话框
public void but2(View view) {
Calendar calendar = Calendar.getInstance();
TimePickerDialog dialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Toast.makeText(MainActivity.this, hourOfDay+":"+minute, Toast.LENGTH_SHORT).show();
}
},calendar.get(Calendar.HOUR),calendar.get(Calendar.MINUTE),true);
dialog.show();
}
二.完整的自定义对话框
主体代码
public void but3(View view) {
final Main_MyDialog dialog = new Main_MyDialog(this);
dialog.setStrti("这是标题");
dialog.setStrmsg("这是内容");
dialog.setStrno("取消选项");
dialog.setStryes("确定选项");
dialog.setYesOnClick(new Main_MyDialog.yesOnClick() {
@Override
public void click() {
dialog.dismiss();
Toast.makeText(MainActivity.this, "你果然是个孤儿", Toast.LENGTH_SHORT).show();
}
});
dialog.setNoOnClick(new Main_MyDialog.noOnClick() {
@Override
public void click() {
dialog.dismiss();
Toast.makeText(MainActivity.this, "你不可能不是孤儿", Toast.LENGTH_SHORT).show();
}
});
dialog.show();
}
页面代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
tools:context=".Main_MyDialog">
<LinearLayout
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:text="警告"
android:textColor="#38ADFF"
android:textSize="16sp"/>
<TextView
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:layout_gravity="center"
android:text="保护视力,少玩手机"/>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginTop="15dp"
android:background="#E4E4E4"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:orientation="horizontal">
<Button
android:id="@+id/no"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginLeft="10dp"
android:background="@null"
android:gravity="center"
android:lines="1"
android:text="取消"
android:textColor="#7D7D7D"
android:textSize="16sp"/>
<View
android:layout_width="1px"
android:layout_height="match_parent"
android:background="#E4E4E4"/>
<Button
android:id="@+id/yes"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginRight="10dp"
android:background="@null"
android:gravity="center"
android:lines="1"
android:text="确定"
android:textColor="#38ADFF"
android:textSize="16sp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
继承关系类
private TextView title;
private TextView message;
private Button no;
private Button yes;
private String strmsg;
private String strti;
private String strno;
private String stryes;
public interface yesOnClick{
void click();
}
public interface noOnClick{
void click();
}
public String getStrno() {
return strno;
}
private yesOnClick yesOnClick;
private noOnClick noOnClick;
public void setYesOnClick(Main_MyDialog.yesOnClick yesOnClick) {
this.yesOnClick = yesOnClick;
}
public void setNoOnClick(Main_MyDialog.noOnClick noOnClick) {
this.noOnClick = noOnClick;
}
public void setStrno(String strno) {
this.strno = strno;
}
public String getStryes() {
return stryes;
}
public void setStryes(String stryes) {
this.stryes = stryes;
}
public Main_MyDialog(@NonNull Context context) {
super(context);
}
public String getStrmsg() {
return strmsg;
}
public void setStrmsg(String strmsg) {
this.strmsg = strmsg;
}
public String getStrti() {
return strti;
}
public void setStrti(String strti) {
this.strti = strti;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main__my_dialog);
initView();
title.setText(getStrti());
message.setText(getStrmsg());
no.setText(getStrno());
yes.setText(getStryes());
yes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
yesOnClick.click();
}
});
no.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
noOnClick.click();
}
});
}