用AlertDialog来创建6种类型的对话框

本文介绍了如何利用AlertDialog创建对话框,包括基本结构:图标区、标题区、内容区和按钮区。详细步骤涉及设置标题、图标、内容以及不同类型的按钮。内容设置涵盖6种方法:简单文本、简单列表、单选列表、多选列表、自定义列表和自定义View。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.AlertDialog生成的对话框的基本结构:①图标区②标题区③内容区④按钮区

2.用AlertDialog创建对话框的步骤:

①创建AlertDialog.Builder对象;

②调用AlertDialog.Builder的setTitle()或setCustomTitle()方法设置标题;

③调用AlertDialog.Builder的setIcon()方法设置标题;

④调用AlertDialog.Builder的相关设置方法设置对话框的内容(6中会在下面给出介绍);

⑤调用AlertDialog.Builder的setPositiveButton()、setNegativeButton()或setNeutralButton()方法添加多个按钮;

⑥调用AlertDialog.Builder的creat()方法创建AlertDialog对象,再调用AlertDialog对象的show()方法将该对话框显示出啦;

3.设置对话框内容的6种方法:

①setMessage():设置对话框内容为简单文本;

②setItems():设置对话框内容为简单列表项;

③setSingleChoiceItems();设置对话框内容为单选列表项;

④setMultiChoiceItems();设置对话框内容为多选列表项;

⑤setAdapter();设置对话框内容为自定义列表项;

⑥setView();设置对话框内容为自定义View;


import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.ArrayAdapter;
import android.widget.TableLayout;

public class MainActivity extends Activity {
    TextView show;
    //设置对话框显示内容的资源数组;
    String [] items = new String[] {
            "疯狂java讲义","疯狂Android讲义",
            "疯狂ajAx讲义","java EE"
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        show = (TextView)findViewById(R.id.show);
    }
    //点击确定按钮执行的功能函数
    private AlertDialog.Builder setPositiveButton(AlertDialog.Builder builder) {
        return builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                show.setText("单击了确定按钮");
            }
        });
    }
    //点击取消按钮执行的功能函数
    private AlertDialog.Builder setNegativeButton(AlertDialog.Builder builder) {
        return builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                show.setText("单击了取消按钮");
            }
        });
    }
    //创建对话框内容为简单文本内容的对话框
    public void simple(View source) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                .setTitle("简单对话框")//设置对话框的标题
                .setIcon(R.drawable.tools)//设置对话框的图标
                .setMessage("对话框的测试内容\n第二行内容");//设置对话框的内容
        setPositiveButton(builder);
        setNegativeButton(builder).create().show();

    }
    //创建对话框内容为简单列表项的对话框
    public void simpleList(View source) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                .setTitle("简单文本对话框")
                .setIcon(R.drawable.tools)
                .setItems(items, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        show.setText("你选中了《" + items[which] + "》");
                    }
                });
        setPositiveButton(builder);
        setNegativeButton(builder).create().show();
    }
    //设置对话框内容为单选列表项的对话框
    public void singlechoice(View source) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                .setTitle("单选列表项对话框")
                .setIcon(R.drawable.tools)
                .setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        show.setText("你选中了《" + items[which] + "》");
                    }
                });
        setPositiveButton(builder);
        setNegativeButton(builder).create().show();
    }
    //设置对话框内容为多选列表项的对话框
    public void multiChoice(View source) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                .setTitle("多选列表项对话框")
                .setIcon(R.drawable.tools)
                .setMultiChoiceItems(items, new boolean[]{false, true, false, true}, null);
        setPositiveButton(builder);
        setNegativeButton(builder).create().show();
    }
    //设置对话框内容为自定义列表项的对话框
    public void customList(View source) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this)
                .setTitle("自定义列表对话框")
                .setIcon(R.drawable.tools)
                .setAdapter(new ArrayAdapter<String>(this, R.layout.array_item, items), null);
        setPositiveButton(builder);
        setNegativeButton(builder).create().show();
    }
    //设置对话框内容为自定义View的对话框
    public void customView(View source) {
        TableLayout loginForm = (TableLayout)getLayoutInflater().inflate(R.layout.login,null);
        new AlertDialog.Builder(this)
                .setTitle("自定义View对话框")
                .setIcon(R.drawable.tools)
                .setView(loginForm)
                .setPositiveButton("登录", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                })
                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                })
                .create().show();


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值