android中dialog可以直接调用builder来建立,但是有时候dialog很多的时候你可以用onCreateDialog(id)
把它们统一做好,在需要显示的时候调用 showDialog(id);就可已很方便的来操作。这里我就写了一个写1写2都市那个dialog,当然你可在oncreatedialog里面分类多种,把id用起来,用个switch就好,我就不多写了。
share.setOnClickListener(new OnClickListener() {
@Overridepublic 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>