Android对话框
对话框:提示对话框,进度条对话框,时间对话框,日期对话框
最简单对话框
AlertDialog dialog = new AlertDialog.Builder(this)
.setIcon(R.mipmap.ic_launcher)//设置标题的图片
.setTitle("我是对话框")//设置对话框的标题
.setMessage("我是对话框的内容")//设置对话框的内容
//设置对话框的按钮
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(Main3Activity.this, "点击了取消按钮", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(Main3Activity.this, "点击了确定的按钮", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
}).create();
dialog.show();
时间对话框
data.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//时间对话框
TimePickerDialog time=new TimePickerDialog(AlertDialogActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
}
}, h, mm,true);
time.show();
}
});
日期对话框
data.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//日期对话框
DatePickerDialog datePickerDialog=new DatePickerDialog(AlertDialogActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
}
}, year, month-1, date);
datePickerDialog.show();
}
});
自定义对话框
alert_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
View view = LayoutInflater.from(AlertDialogActivity.this).inflate(R.layout.alert_item, null);
et_name = (EditText) view.findViewById(R.id.alertitem_name);
et_pwd = (EditText) view.findViewById(R.id.alertitem_pwd);
AlertDialog.Builder bu = new AlertDialog.Builder(AlertDialogActivity.this);
bu.setIcon(R.mipmap.ic_launcher);
bu.setTitle("登录");
bu.setView(view);
bu.setPositiveButton("yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(AlertDialogActivity.this, et_name.getText().toString() + et_pwd.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
bu.setNegativeButton("no", null);
bu.show();
}
});
系统对话框
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("对话框");
builder.setMessage("你确定离开吗?");
builder.setIcon(R.mipmap.ic_launcher);
builder.setPositiveButton("yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setNegativeButton("no", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
}
return super.onKeyDown(keyCode, event);
}
进度条对话框
水平样式
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
圆形样式
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setCancelable(true); // 能够返回
progressDialog.setCanceledOnTouchOutside(true); // 点击外部返回
progressDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pd=new ProgressDialog(AlertDialogActivity.this);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setMax(200);
pd.setTitle("login");
pd.setMessage("Do you know?");
pd.setIcon(R.mipmap.ic_launcher);
pd.setIndeterminate(false);
pd.setCancelable(true);// 点击外部返回
pd.setButton(pd.BUTTON_POSITIVE, "yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
pd.show();
new Thread(new Runnable() {
@Override
public void run() {
for (int i=0;i<=100;i++){
pd.setProgress(i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
});
}
总代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_alert_dialog"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.mystudy.AlertDialogActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/alert_btn"
android:textSize="20sp"
android:text="单击"/>
<Button
android:layout_below="@+id/alert_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/alert1_btn"
android:textSize="20sp"
android:text="progressDialog"/>
<Button
android:layout_below="@+id/alert1_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/alert2_btn"
android:textSize="20sp"
android:text="data"/>
</RelativeLayout>
import android.app.DatePickerDialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TimePicker;
import android.widget.Toast;
import java.util.Calendar;
public class AlertDialogActivity extends AppCompatActivity {
private Button alert_btn,progressDialog,data;
private EditText et_name, et_pwd;
private ProgressDialog pd;
private int year,month,date,h,mm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alert_dialog);
alert_btn = (Button) findViewById(R.id.alert_btn);
progressDialog= (Button) findViewById(R.id.alert1_btn);
data= (Button) findViewById(R.id.alert2_btn);
Calendar calendar=Calendar.getInstance();
year=calendar.get(Calendar.YEAR);
month=calendar.get(Calendar.MONTH);
date=calendar.get(Calendar.DATE);
h=calendar.get(Calendar.HOUR);
mm=calendar.get(Calendar.MINUTE);
data.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//日期对话框
DatePickerDialog datePickerDialog=new DatePickerDialog(AlertDialogActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
}
}, year, month-1, date);
datePickerDialog.show();
//时间对话框
/*TimePickerDialog time=new TimePickerDialog(AlertDialogActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
}
}, h, mm,true);
time.show();*/
}
});
//自定义对话框
alert_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
View view = LayoutInflater.from(AlertDialogActivity.this).inflate(R.layout.alert_item, null);
et_name = (EditText) view.findViewById(R.id.alertitem_name);
et_pwd = (EditText) view.findViewById(R.id.alertitem_pwd);
AlertDialog.Builder bu = new AlertDialog.Builder(AlertDialogActivity.this);
bu.setIcon(R.mipmap.ic_launcher);
bu.setTitle("登录");
bu.setView(view);
bu.setPositiveButton("yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(AlertDialogActivity.this, et_name.getText().toString() + et_pwd.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
bu.setNegativeButton("no", null);
bu.show();
}
});
//进度条对话框
progressDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pd=new ProgressDialog(AlertDialogActivity.this);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setMax(200);
pd.setTitle("login");
pd.setMessage("Do you know?");
pd.setIcon(R.mipmap.ic_launcher);
pd.setIndeterminate(false);
pd.setCancelable(true);// 点击外部返回
pd.setButton(pd.BUTTON_POSITIVE, "yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
pd.show();
new Thread(new Runnable() {
@Override
public void run() {
for (int i=0;i<=100;i++){
pd.setProgress(i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
}
});
}
//系统对话框
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("对话框");
builder.setMessage("你确定离开吗?");
builder.setIcon(R.mipmap.ic_launcher);
builder.setPositiveButton("yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setNegativeButton("no", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
}
return super.onKeyDown(keyCode, event);
}
}