转载请注明出处:Dialogs对话框集合_dialogs 对话框perl_Mr_Leixiansheng的博客-CSDN博客
种类:
1、确定对话框(常规)
2、单选对话框(builder.setSingleChoiceItems())
3、多选对话框(builder.setMultiChoiceItems())
4、列表对话框( builder.setItems())
5、自定义对话框(builder.setView())
代码如下:
1、布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btn_1"
android:text="确定对话框"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_2"
android:text="单选对话框"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_3"
android:text="多选对话框"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_4"
android:text="列表对话框"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/btn_5"
android:text="自定义对话框"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/dilog_text"
android:hint="请输入内容"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<Button
android:id="@+id/dialog_btn"
android:text="提交"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<ImageView
android:layout_gravity="center"
android:src="@mipmap/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
2、实现功能
package com.example.leixiansheng.dialogs;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btn1, btn2, btn3, btn4, btn5;
private String[] item_list = {"列表1","列表2","列表3","列表4","列表5"};
private String[] single_list = {"学生","工人","老师","警察","教练"};
private String[] choice_list = {"学生","工人","老师","警察","教练"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.btn_1);
btn2 = (Button) findViewById(R.id.btn_2);
btn3 = (Button) findViewById(R.id.btn_3);
btn4 = (Button) findViewById(R.id.btn_4);
btn5 = (Button) findViewById(R.id.btn_5);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
btn5.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_1:
//确认对话框
show_1();
break;
case R.id.btn_2:
//单选对话框
show_2();
break;
case R.id.btn_3:
//多选对话框
show_3();
break;
case R.id.btn_4:
//列表对话框
show_4();
break;
case R.id.btn_5:
//自定义对话框
show_5();
break;
}
}
private void show_5() {
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.dialog_layout, null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("自定义对话框");
builder.setIcon(R.mipmap.ic_launcher);
builder.setView(view);
builder.create();
builder.show();
final TextView textView = (TextView) view.findViewById(R.id.dilog_text);
Button button = (Button) view.findViewById(R.id.dialog_btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this, "你提交了:" + textView.getText(), Toast.LENGTH_SHORT).show();
}
});
}
private void show_4() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("列表对话框");
builder.setIcon(R.mipmap.ic_launcher);
builder.setItems(item_list, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你点击了" + item_list[i], Toast.LENGTH_SHORT).show();
}
});
builder.create();
builder.show();
}
private void show_3() {
//final boolean chooseItem[] = {false, false, false, false, false}; //初始选择状态
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("多选择对话框");
builder.setIcon(R.mipmap.ic_launcher);
builder.setCancelable(false);
builder.setMultiChoiceItems(choice_list, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b) {
// chooseItem[which] = isChecked; //将选中状态保存
if (b) {
//选中
Toast.makeText(MainActivity.this, "你选中了" + choice_list[i], Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "你取消了" + choice_list[i], Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
builder.create();
builder.show();
}
private void show_2() {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("单选对话框");
builder.setIcon(R.mipmap.ic_launcher);
builder.setSingleChoiceItems(single_list, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "他是个" + single_list[i], Toast.LENGTH_SHORT).show();
// //确认后关闭提示框
// dialogInterface.dismiss();
}
});
builder.create();
builder.show();
}
private void show_1() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("确定对话框");
builder.setMessage("这是一个确定对话框,请选择");
builder.setIcon(R.mipmap.ic_launcher);
//返回、点击空白区域 不可取消对话框
builder.setCancelable(false);
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你点击了确定", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(MainActivity.this, "你点击了取消", Toast.LENGTH_SHORT).show();
}
});
builder.create();
builder.show();
}
}