Android 对话框

这篇博客介绍了如何在Android应用中创建和使用普通对话框,包括设置标题、消息和操作按钮。同时,详细讲解了如何添加单选列表和多选列表,提供了示例代码展示如何实现列表的点击事件及数据输出。通过这些方法,开发者可以灵活地在对话框中展示信息并获取用户选择。
摘要由CSDN通过智能技术生成

对话框:普通对话框,单选列表,多选列表

普通对话框 Dialog

对话框显示3个部分:标题内容区域(它可以显示消息、列表或其他自定义布局。)、操作按钮(对话框中的操作按钮不应超过三个。)

常用的几个方法

setTitle()设置对话框标题
setMessage()设置对话框消息
setPositiveButton ()设置对话框添加yes按钮
setNegativeButton ()设置对话框添加no按钮

弄一个按钮,点击跳转事件normaleDialog

<?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">
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="普通对话框"
        android:onClick="normaleDialog"/>
</LinearLayout>

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog);
    }
     //普通对话框,.setPositiveButton("确定", null) 没有设置监听就用null
     //builder.show();是将他们显示出来的意思
    public void normaleDialog(View v){
    //调用内置类AlertDialog.Builder
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("普通对话框")
                .setMessage("你确定你要退出吗?")
                .setPositiveButton("确定", null)
                .setNegativeButton("取消", null);
         builder.show();
    }
}

在这里插入图片描述

添加列表

(我们的内容可以显示为列表)
列表又分为单选列表(单选按钮)和多选列表(复选框)
单选列表

<?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">
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="普通对话框"
        android:onClick="normaleDialog"/>
</LinearLayout>

1、单选列表 .setSingleChoiceItems这里运用的是这个方法创建
2、包含三个参数(数组;是否默认选中,0代表默认第一个,-1默认未选中;是否监听,允许对话框被点击)
3、public void onClick(DialogInterface dialog, int i) {Toast.makeText(MainActivity.this, string[i], Toast.LENGTH_LONG).show();
输入i 输出string[i]
这里的string[i]对应数组的值进行输出

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog);
    }
    public void normaleDialog(View v){
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
         //创建了一个数组,里面的内容使我们列表的内容
        final  String []string =new String[]{"红色","黄色","蓝色"};     
        builder.setTitle("普通对话框")
                .setSingleChoiceItems(string, 0, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int i) {
                        Toast.makeText(MainActivity.this, string[i], Toast.LENGTH_LONG).show();
                    }
                })
                .setPositiveButton("确定",null);
         builder.show();
    }
}

在这里插入图片描述

多选列表

1、多选列表用setMultiChoiceItems创建方法
2、 Toast.makeText(MainActivity.this, selectedItems.toString(), Toast.LENGTH_LONG).show();
当我们按确定的时候输出选中的的下标。

<?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">
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="普通对话框"
        android:onClick="normaleDialog"/>
</LinearLayout>
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog);
    }
 //对话框:多选列表
            public void normaleDialog(View v){
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        final  String []string =new String[]{"红色","黄色","蓝色"};
        final ArrayList selectedItems = new ArrayList();  //selecteditems比起数组可以自动扩容,就是数组不用设置长度
        builder.setTitle("普通对话框")
                .setMultiChoiceItems(string, null,
                        new DialogInterface.OnMultiChoiceClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which,
                                                boolean isChecked) {
                                if (isChecked) {
                                    // If the user checked the item, add it to the selected items
                                    selectedItems.add(which);//点击则放进selectedItems
                                } else if (selectedItems.contains(which)) {
                                    // Else, if the item is already in the array, remove it
                                    selectedItems.remove(Integer.valueOf(which));
                                }
                            }
                        })
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        // FIRE ZE MISSILES!
                        Toast.makeText(MainActivity.this, selectedItems.toString(), Toast.LENGTH_LONG).show();
                    }
                })
                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        // User cancelled the dialog
                    }
                });
         builder.show();
    }
}

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值