几种常用的对话框:普通对话框,列表对话框,单选对话框,多选对话框
xml布局:
<?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:background="#ffffff"
android:orientation="vertical">
<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="10dp"
android:background="@drawable/re_corners"
android:gravity="center"
android:text="普通Dialog" />
<TextView
android:id="@+id/tv2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="10dp"
android:background="@drawable/re_corners"
android:gravity="center"
android:text="列表Dialog" />
<TextView
android:id="@+id/tv3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_margin="10dp"
android:padding="10dp"
android:background="@drawable/re_corners"
android:text="单选Dialog" />
<TextView
android:id="@+id/tv4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="10dp"
android:background="@drawable/re_corners"
android:gravity="center"
android:text="多选Dialog" />
</LinearLayout>
activity的实现:
public class SixActivity extends AppCompatActivity implements View.OnClickListener{
private TextView tv1,tv2,tv3,tv4;
private boolean[] checkItems;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_six);
initView();
}
private void initView() {
tv1=findViewById(R.id.tv1);
tv2=findViewById(R.id.tv2);
tv3=findViewById(R.id.tv3);
tv4=findViewById(R.id.tv4);
tv1.setOnClickListener(this);
tv2.setOnClickListener(this);
tv3.setOnClickListener(this);
tv4.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
//普通对话框
case R.id.tv1:
new android.app.AlertDialog.Builder(SixActivity.this)
.setTitle("系统提示")
.setMessage("这是一个普通的对话框")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override//
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(SixActivity.this, "确定", Toast.LENGTH_SHORT).show();
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Toast.makeText(SixActivity.this, "取消", Toast.LENGTH_SHORT).show();
}
}).show();
break;
//普通列表对话框
case R.id.tv2:
final String[] book = new String[]{"篮球", "排球", "羽毛球", "足球"};
new AlertDialog.Builder(SixActivity.this)
.setTitle("选择你喜欢的球类")
.setItems(book, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
Toast.makeText(getApplicationContext(), "你选择了" + book[which], Toast.LENGTH_SHORT).show();
}
}).show();
break;
//单选列表对话框
case R.id.tv3:
final String[] color = new String[]{"白色", "红色", "蓝色", "绿色", "粉色"};
new AlertDialog.Builder(SixActivity.this)
.setTitle("选择你喜欢的颜色,只能选一种哦")
.setSingleChoiceItems(color, 0,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
Toast.makeText(getApplicationContext(), "你选择了" + color[which], Toast.LENGTH_SHORT).show();
}
}).show();
break;
//多选列表对话框
case R.id.tv4:
final String[] smoke = new String[]{"中华", "芙蓉王", "金典100", "迎春", "利群"};
//定义一个用来记录个列表项状态的boolean数组
checkItems = new boolean[]{false, false, false,false,false};
new AlertDialog.Builder(SixActivity.this)
.setMultiChoiceItems(smoke, checkItems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which, boolean isChecked) {
checkItems[which] = isChecked;
}
}).setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
String result = "";
for (int i = 0; i < checkItems.length; i++) {
if (checkItems[i])
result += smoke[i] + " ";
}
Toast.makeText(getApplicationContext(), "你喜欢:" + result, Toast.LENGTH_SHORT).show();
}
}).show();
break;
}
}
}
一个drawable文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 设置透明背景色 -->
<solid android:color="#d8ecf5" />
<!-- 设置一个黑色边框 -->
<stroke
android:width="2px"
android:color="#000000" />
<!-- 设置四个圆角的半径 -->
<corners
android:bottomLeftRadius="50px"
android:bottomRightRadius="50px"
android:topLeftRadius="50px"
android:topRightRadius="50px" />
<!-- 设置一下边距,让空间大一点 -->
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
</shape>
就这样了,是不是很简单,。
源码下载地址:https://download.youkuaiyun.com/download/weixin_42267745/10443535