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

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>


你可能感兴趣的:(android)