XML:
<Button
android:id="@+id/btn_01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="弹出文本对话框" />
<Button
android:id="@+id/btn_02"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="弹出列表对话框" />
<Button
android:id="@+id/btn_03"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="弹出单选对话框" />
<Button
android:id="@+id/btn_04"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="弹出多选对话框" />
<Button
android:id="@+id/btn_05"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="弹出自定义对话框" />
主页:
public class MainActivity extends Activity implements OnClickListener{
private Button btn_01;
private Button btn_02;
private Button btn_03;
private Button btn_04;
private Button btn_05;
private EditText dialog_edit;
private Button dialog_btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到按钮的控件
btn_01 = (Button) findViewById(R.id.btn_01);
btn_02 = (Button) findViewById(R.id.btn_02);
btn_03 = (Button) findViewById(R.id.btn_03);
btn_04 = (Button) findViewById(R.id.btn_04);
btn_05 = (Button) findViewById(R.id.btn_05);
//给控件添加监听
btn_01.setOnClickListener(this);
btn_02.setOnClickListener(this);
btn_03.setOnClickListener(this);
btn_04.setOnClickListener(this);
btn_05.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_01:
//弹出文本对话框
normalDialog();
break;
case R.id.btn_02:
//弹出列表对话框
listDialog();
break;
case R.id.btn_03:
//弹出单选对话框
singleDialog();
break;
case R.id.btn_04:
//弹出多选对话框
moreDialog();
break;
case R.id.btn_05:
//弹出自定义对话框
myDialog();
break;
default:
break;
}
}
/**
* 自定义对话框
*/
private void myDialog() {
// 1.创建构造器
Builder builder = new AlertDialog.Builder(MainActivity.this);
//2.通过构造器,创建一个dialog对象
dialog = builder.create();
View view = View.inflate(MainActivity.this, R.layout.dialog_layout, null);
//3.可以给dialog对象设置自己的布局(设置自己的视图对象)
dialog.setView(view );
/**
* 发现问题:
* 1.如果想要对dialog里面的控件进行操作,先找到指定的控件
*/
//找到控件
dialog_edit = (EditText) view.findViewById(R.id.dialog_edit);
dialog_btn = (Button) view.findViewById(R.id.dialog_btn);
dialog_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 提示输入框输入的内容
Toast.makeText(MainActivity.this, dialog_edit.getText().toString(), 0).show();
//隐藏掉dialog对话框
dialog.dismiss();
}
});
//4.显示对话框
dialog.show();
}
/**
* 多选对话框
*/
private void moreDialog() {
// 1.创建dialog的构造器
Builder builder = new AlertDialog.Builder(MainActivity.this);
//2.设置标题
builder.setTitle("请选择你的爱好");
//3.设置多选按钮的监听
/**
* items:展示在多选列表中的数据
* checkedItems:默认选中状态的数组
*/
final String[] items = {"吃","喝","玩","学"};
final boolean[] checkedItems = {false,true,true,false};
builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
//
}
});
//设置确定按钮
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 点击确定按钮,提示当前选中的条目
for (int i = 0; i < items.length; i++) {
if (checkedItems[i]) {
Toast.makeText(MainActivity.this, "选中爱好:"+items[i], 0).show();
}
}
}
});
//4.显示对话框
builder.show();
}
/**
* 单选对话框
*/
int count = 0;
private AlertDialog dialog;
private void singleDialog() {
// 1.创建dailog的构造器
Builder builder = new AlertDialog.Builder(MainActivity.this);
//2.设置属性
builder.setTitle("请选择性别");
//3.设置单选按钮
/**
* items:条目的数据
* checkedItem:默认选中的条目--->如果不需要默认选中,直接给-1
*/
final String[] items = {"女","男","妖"};
builder.setSingleChoiceItems(items , -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 这个监听负责选中条目 which:可以控制当前的选中条目
count = which;
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 输出一下选中的内容
Toast.makeText(MainActivity.this, "选中的性别是:"+items[count], 0).show();
}
});
//4.显示对话框
builder.show();
}
/**
* 列表对话框:不要设置Message,如果设置了,就不会显示列表,只显示文本信息
*/
private void listDialog() {
//1.创建alertdialog的构造器
Builder builder = new AlertDialog.Builder(MainActivity.this);
//2.设置属性
builder.setTitle("请选择:");
//3.添加列表
/**
* items:string类型的数组--》展示在列表上的数据
*/
final String[] items = {"25","27","29"};
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 吐丝一下,点击的条目内容
Toast.makeText(MainActivity.this, items[which], 0).show();
}
});
//4.显示列表对话框
builder.show();
}
/**
* 文本对话框:自带布局
*/
private void normalDialog() {
//1.创建对话框的对象--->对话框的构造器
Builder builder = new AlertDialog.Builder(MainActivity.this);
//2.设置alertdialog的属性
builder.setTitle("提示");//设置标题
builder.setMessage("确定删除吗?");//设置显示的文本内容
builder.setIcon(R.drawable.ic_launcher);//设置dialog的图标
//3.设置按钮----》Positive:积极的按钮
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 确定按钮
Toast.makeText(MainActivity.this, "确定删除", 0).show();
}
});
//4.设置取消按钮---》NegativeButton:消极的按钮
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 取消按钮
Toast.makeText(MainActivity.this, "取消删除", 0).show();
}
});
//设置忽略的按钮
builder.setNeutralButton("忽略", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 忽略按钮 -->关闭对话框,不执行任何操作(返回当前的父窗体页面,并且清空选中的数据)
Toast.makeText(MainActivity.this, "忽略选项", 0).show();
}
});
//5.显示对话框
//builder.show();
builder.create().show();
}
}
提示页面:
<EditText
android:id="@+id/dialog_edit"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:hint="请输入内容"
/>
<Button
android:id="@+id/dialog_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="提交" />
多种按钮对话框
最新推荐文章于 2023-04-11 15:02:42 发布