1.简单对话框
效果如下:
activity_main
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="普通按钮"
android:onClick="ptonclick"/>
</LinearLayout>
MainActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void ptonclick(View view) {
//1.构建
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//2.设置属性
builder.setIcon(R.drawable.ic_launcher_background);//设置图标
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();
}
});
//3.创建对话框
AlertDialog alertDialog = builder.create();
//4.显示
alertDialog.show();
}
}
2.单选对话
效果如下:
activity_main
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".Main2Activity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="单选按钮"
android:onClick="dxonclick"/>
</LinearLayout>
MainActivity2
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
}
public void dxonclick(View view) {
//1.构建
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//2.设置属性
builder.setIcon(R.drawable.ic_launcher_background);//设置图标
builder.setTitle("见一—展正希");//设置标题
builder.setMessage("贱贱和展希希也甜爆了");//设置内容
//设置确定按钮
builder.setPositiveButton("打贱贱", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(Main2Activity.this,"你被奶凶奶凶的展希希搞死了",Toast.LENGTH_SHORT).show();
}
});
//设置取消按钮
builder.setNegativeButton("打展希希", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(Main2Activity.this,"你被疯了的贱贱搞死了",Toast.LENGTH_SHORT).show();
}
});
final String[] items={"见一","展正希","多余的你"};
//设置单选列表
//参数一 列表 参数二 默认选中下表 参数三 事件监听
builder.setSingleChoiceItems(items, 2, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(Main2Activity.this, "你选中了"+items[which], Toast.LENGTH_SHORT).show();
}
});
//3.创建对话框
AlertDialog alertDialog = builder.create();
//4.显示
alertDialog.show();
}
}
3.多选布局
效果如下:
activity_main
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".Main3Activity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="多选按钮"
android:onClick="dxonclick"/>
</LinearLayout>
MainActivity3
public class Main3Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
}
private void dxonclick(View view){
final String[] items={"贺天","莫关山","见一","展正希"};
final boolean[] flag={true,true,true,false};
//1.构建
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//2.设置属性
builder.setIcon(R.drawable.ic_launcher_background);//设置图标
builder.setTitle("十九天");//设置标题
//设置确定按钮
builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
for(int i=0;i<flag.length;i++){
if(flag[i]){
Toast.makeText(Main3Activity.this,"是"+items[i],Toast.LENGTH_SHORT).show();
}
}
}
});
//设置取消按钮
builder.setNegativeButton("", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(Main3Activity.this,"你取消了",Toast.LENGTH_SHORT).show();
}
});
//设置对选列表
//参数一 列表 参数二 默认选中下表 参数三 事件监听
builder.setMultiChoiceItems(items, flag, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
flag[which]=isChecked;
}
});
//3:使用建造者创建对话框
AlertDialog dialog = builder.create();
//4:显示
dialog.show();
}
}
4.多选布局
效果如下:
activity_main
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".Main4Activity"
android:orientation="vertical"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:text="贺天大大啊"/>
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ht"
/>
</LinearLayout>
MainActivity4
public class Main4Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main4);
View inflate = LayoutInflater.from(this).inflate(R.layout.activity_main4, null);
View image = inflate.findViewById(R.id.image);
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//点击图片吐司或关闭对话框
Toast.makeText(Main4Activity.this, "MAX力爆棚的贺天", Toast.LENGTH_SHORT).show();
}
});
//1.构造
AlertDialog.Builder builder=new AlertDialog.Builder(this);
//2.设置自定义布局
builder.setView(inflate);
//3.使用建造者创建对话框
AlertDialog dialog = builder.create();
//4.显示
dialog.show();
}
}
5.水平进度条对话框
效果如下:
activity_main
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".Main5Activity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="jdtonclick"
android:text="进度条对话框"/>
</LinearLayout>
MainActivity5
public class Main5Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main5);
}
public void jdtonclick(View view) {
//1.实例化对象
final ProgressDialog progressDialog = new ProgressDialog(this);
//2.设置属性
progressDialog.setProgressStyle(progressDialog.STYLE_HORIZONTAL);//设置水平央视
progressDialog.setMax(100);//设置进度条最大值
progressDialog.setMessage("正在下载");
//3.显示
progressDialog.show();
//4.模拟定时器
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
int progress=0;
@Override
public void run() {
if(progress==100){
progressDialog.dismiss();//消失
timer.cancel();
}
progressDialog.setProgress(progress+=20);
}
},0,1000);//0秒后执行,每个1000毫秒执行一次
}
}
6.圆形进度条对话框
效果如下:
activity_main
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".Main6Activity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="圆形进度条对话框"
android:onClick="onclick"/>
</LinearLayout>
MainActivity6
public class Main6Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main6);
}
public void onclick(View view) {
//1.实例化对象
final ProgressDialog progressDialog = new ProgressDialog(this);
//2.设置属性
progressDialog.setProgressStyle(progressDialog.STYLE_SPINNER);//设置圆圈
progressDialog.setMax(100);//设置进度条最大值
progressDialog.setMessage("正在下载");
//3.显示
progressDialog.show();
//4.模拟定时器
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
int progress=0;
@Override
public void run() {
if(progress==100){
progressDialog.dismiss();//消失
timer.cancel();
}
progressDialog.setProgress(progress+=20);
}
},0,1000);//0秒后执行,每个1000毫秒执行一次
}
}
7.日期选择对话框
效果如下:
activity_main
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".Main7Activity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="日期选择对话框"
android:onClick="rqonclick"/>
</LinearLayout>
MainActivity7
public class Main7Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main7);
}
public void rqonclick(View view) {
/**
* context 上下文
* listener 监听器
* year 默认的年
* month 默认的月
* dayOfMonth 默认的日
*/
Calendar instance = Calendar.getInstance();//日历对象
new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Toast.makeText(Main7Activity.this, year+"-"+(month+1)+"-"+dayOfMonth, Toast.LENGTH_SHORT).show();
}
},instance.get(Calendar.YEAR),instance.get(Calendar.MONTH),instance.get(Calendar.DAY_OF_MONTH)).show();
}
}
8.时间选择对话框
效果如下:
activity_main
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".Main8Activity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="时间选择对话框"
android:onClick="onclick"/>
</LinearLayout>
MainActivity8
public class Main8Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main8);
}
public void onclick(View view) {
/**
* context 上下文
* listener 监听器
* hourOfDay 默认的时
* minute 默认的分钟
* is24HourView 是否采用24时禁止
*/
Calendar instance = Calendar.getInstance();//日历对象
//1.实例化对象
new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Toast.makeText(Main8Activity.this, hourOfDay+":"+minute, Toast.LENGTH_SHORT).show();
}
},instance.get(Calendar.HOUR),instance.get(Calendar.MINUTE),true).show();
}
}
自定义对话框
activity_main3
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".Main2Activity">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@mipmap/tp"
/>
<Button
android:layout_width="200dp"
android:layout_height="wrap_content"
android:drawableTop="@mipmap/ic_launcher_round"
android:background="#FFF"
android:text="页面一"
android:layout_marginTop="640dp"
android:onClick="onclick1"/>
<Button
android:layout_width="200dp"
android:layout_height="wrap_content"
android:drawableTop="@mipmap/ic_launcher_round"
android:layout_marginLeft="210dp"
android:background="#FFF"
android:text="页面二"
android:layout_marginTop="640dp"/>
</RelativeLayout>
activity_main3
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
tools:context=".Main3Activity">
<View
android:layout_width="match_parent"
android:layout_height="300dp"
android:background="#FF9800"
/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher_round"
android:layout_marginTop="70dp"/>
<TextView
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="总资产(元)\n0.00"
android:layout_marginTop="200dp"
android:gravity="center"/>
<TextView
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="总资产(元)\n0.00"
android:layout_marginTop="200dp"
android:layout_marginLeft="210dp"
android:gravity="center"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FF9800"
android:text="下一步"
android:layout_marginTop="560dp"
android:onClick="nextonclick"
/>
<Button
android:layout_width="200dp"
android:layout_height="wrap_content"
android:drawableTop="@mipmap/ic_launcher_round"
android:background="#FFF"
android:text="页面一"
android:layout_marginTop="640dp"
/>
<Button
android:layout_width="200dp"
android:layout_height="wrap_content"
android:drawableTop="@mipmap/ic_launcher_round"
android:layout_marginLeft="210dp"
android:background="#FFF"
android:text="页面二"
android:layout_marginTop="640dp"
android:onClick="onclick"/>
</RelativeLayout>
mydialog
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="280dp"
android:orientation="vertical">
<Button
android:id="@+id/quxiao"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="X"
android:background="#03A9F4"
android:layout_marginLeft="180dp"/>
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="150dp"
android:text="评价一下"
android:background="#03A9F4"
android:gravity="center"
android:paddingTop="20dp"
android:textColor="#FFF"
android:textSize="20dp"/>
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="喜欢吗,给个五星好评吧期待\n我们做的更好!"
android:gravity="center"
android:layout_marginTop="170dp"/>
<Button
android:id="@+id/isyes"
android:layout_width="100dp"
android:layout_height="30dp"
android:text="我要吐槽"
android:background="#FFF"
android:layout_marginTop="250dp"/>
<Button
android:id="@+id/isno"
android:layout_width="100dp"
android:layout_height="30dp"
android:text="五星好评"
android:background="#FFF"
android:layout_marginTop="250dp"
android:layout_marginLeft="210dp"/>
</RelativeLayout>
</LinearLayout>
Main2Activity
public class Main2Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
}
public void onclick1(View view) {
Intent intent = new Intent(Main2Activity.this, Main3Activity.class);
startActivity(intent);
}
}
Main3Activity
public class Main3Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
}
public void onclick(View view) {
Intent intent = new Intent(Main3Activity.this, Main2Activity.class);
startActivity(intent);
}
public void nextonclick(View view) {
MyDialog myDialog = new MyDialog(this);
myDialog.setYesonclick(new MyDialog.Yesonclick() {
@Override
public void getyes() {
Toast.makeText(Main3Activity.this, "成功", Toast.LENGTH_SHORT).show();
}
});
myDialog.setNoOnclick(new MyDialog.NoOnclick() {
@Override
public void getno() {
Toast.makeText(Main3Activity.this, "失败", Toast.LENGTH_SHORT).show();
}
});
myDialog.setQuxiaoonclick(new MyDialog.Quxiaoonclick() {
@Override
public void getquxiao() {
Toast.makeText(Main3Activity.this, "取消", Toast.LENGTH_SHORT).show();
}
});
myDialog.show();
}
}
MyDialog
public class MyDialog extends Dialog {
private TextView title;
private TextView text;
private Button isyes;
private Button isno;
private Button quxiao;
private String myquxiao;
private String myyes;
private String myno;
public void setMyquxiao(String myquxiao) {
this.myquxiao = myquxiao;
}
public void setMyyes(String myyes) {
this.myyes = myyes;
}
public void setMyno(String myno) {
this.myno = myno;
}
public MyDialog(Context context) {
super(context);
}
private Quxiaoonclick quxiaoonclick;
public interface Quxiaoonclick{
void getquxiao();
}
public void setQuxiaoonclick(Quxiaoonclick quxiaoonclick) {
this.quxiaoonclick = quxiaoonclick;
}
private Yesonclick yesonclick;
public interface Yesonclick{
void getyes();
}
public void setYesonclick(Yesonclick yesonclick) {
this.yesonclick = yesonclick;
}
private NoOnclick noOnclick;
public interface NoOnclick{
void getno();
}
public void setNoOnclick(NoOnclick noOnclick) {
this.noOnclick = noOnclick;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mydialog);
title = (TextView) findViewById(R.id.title);
text = (TextView) findViewById(R.id.text);
isyes = (Button) findViewById(R.id.isyes);
isyes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("TAG","成功");
yesonclick.getyes();
}
});
isno = (Button) findViewById(R.id.isno);
isno.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("TAG","取消");
noOnclick.getno();
}
});
quxiao = (Button) findViewById(R.id.quxiao);
quxiao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Quxiaoonclick.getquxiao();
dismiss();
}
});
}
}