onCreateDialog创建Dialog,并且用showDialog(id)调用Dialog的信息

本文介绍了如何在Android应用中利用onCreateDialog方法创建对话框,并通过showDialog(id)进行调用。示例代码展示了如何创建一个包含多个选项的对话框,并根据用户选择执行相应操作。对话框的创建可以集中管理,方便维护。

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

android中dialog可以直接调用builder来建立,但是有时候dialog很多的时候你可以用onCreateDialog(id)

把它们统一做好,在需要显示的时候调用 showDialog(id);就可已很方便的来操作。这里我就写了一个写1写2都市那个dialog,当然你可在oncreatedialog里分类多种,把id用起来,用个switch就好,我就不多写了。

share.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                            showDialog(1);
                     

                        }

}

@Override
    protected Dialog onCreateDialog(int id) {
        Dialog dialog = null;
        DialogInterface.OnClickListener listener;
        Builder builder = new AlertDialog.Builder(this);

        BaseAdapter adapter = new ListItemAdapter();
        listener = new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int which) {
                String aa = getResources().getStringArray(R.array.hobby)[which];
                if (aa.equals("新浪微博")) {
                    weibo();
                } else if (aa.equals("人人网")) {
                    renren();
                } else if (aa.equals("微信")) {
                    weixin();
                } else {
                    Toast.makeText(MainScreen.this, aa, Toast.LENGTH_SHORT).show();
                }

            }
        };

        builder.setAdapter(adapter, listener);
        // dialog.setCanceledOnTouchOutside(true);

        dialog = builder.create();
        dialog.setCanceledOnTouchOutside(true);

        return dialog;
    }

<span style="font-size:18px;"><span style="font-family:System;">@Override
	protected void onPrepareDialog(int id, Dialog dialog, Bundle args) {
		switch (id) {
		case SHOW_RENAME_DIALOG:
			dialog.setTitle(showInfo.getText());
			break;
		}
		super.onPrepareDialog(id, dialog, args);
	}

<span style="font-size:18px;">如果你使用onCreateDialog方法创建对话框,而又想动态地更新它显示的信息,那你必须重写onPrepareDialog
方法,在这个方法中对Dialog的显示信息进行设置,并且你在onCreateDialog方法中对这些显示信息的设置不可
以为空,否则在onPrepareDialog对这些显示信息进行重新设置不会生效。</span></span> </span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值