android聊天框怎么写( 二 )


onPrepareDialog(int,Dialog):在对话框被显示之前 , Android还调用了可选的回调函数onPrepareDialog(intid,Dialog).如果你想在每一次对话框被打开时改变它的任何属性 , 你可以定义这个方法 。这个方法在每次打开对话框时被调用 , 而onCreateDialog(int)仅在对话框第一次打开时被调用 。
如果你不定义onPrepareDialog() , 那么这个对话框将保持和上次打开时一样 。这个方法也被传递以对话框的ID , 和在onCreateDialog()中创建的对话框对象 。
dismissDialog(int):当你准备关闭对话框时 , 你可以通过对这个对话框调用dismiss()来消除它 。如果需要 , 你还可以从这个Activity中调用dismissDialog(intid)方法 , 这实际上将为你对这个对话框调用dismiss()方法 。
如果你想使用onCreateDialog(intid)方法来管理你对话框的状态(就如同在前面的章节讨论的那样) , 然后每次你的对话框消除的时候 , 这个对话框对象的状态将由该Activity保留 。如果你决定不再需要这个对象或者清除该状态是重要的 , 那么你应该调用removeDialog(intid) 。
这将删除任何内部对象引用而且如果这个对话框正在显示 , 它将被消除 。下面是几种对话框的效果图一:图二:图三:图四:图五:图六:图七:图1效果:该效果是当按返回按钮时弹出一个提示 , 来确保无误操作 , 采用常见的对话框样式 。
代码: 创建对话框方法dialog() protected void dialog() { AlertDialog.Builder builder = new Builder(Main.this); builder.setMessage("确认退出吗?"); builder.setTitle("提示"); builder.setPositiveButton("确认" ,  new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); Main.this.finish(); } }); builder.setNegativeButton("取消" ,  new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show();}在onKeyDown(int keyCode, KeyEvent event)方法中调用此方法public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { dialog(); } return false;} 图2效果:改变了对话框的图表 , 添加了三个按钮Dialog dialog = new AlertDialog.Builder(this).setIcon( android.R.drawable.btn_star).setTitle("喜好调查").setMessage( "你喜欢李连杰的电影吗?").setPositiveButton("很喜欢" ,  new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(Main.this ,  "我很喜欢他的电影 。" ,  Toast.LENGTH_LONG).show(); } }).setNegativeButton("不喜欢" ,  new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(Main.this ,  "我不喜欢他的电影 。
" ,  Toast.LENGTH_LONG) .show(); } }).setNeutralButton("一般" ,  new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(Main.this ,  "谈不上喜欢不喜欢 。" ,  Toast.LENGTH_LONG) .show(); } }).create(); dialog.show(); 图3效果:信息内容是一个简单的View类型new AlertDialog.Builder(this).setTitle("请输入").setIcon( android.R.drawable.ic_dialog_info).setView( new EditText(this)).setPositiveButton("确定" ,  null) .setNegativeButton("取消" ,  null).show(); 图4效果:信息内容是一组单选框new AlertDialog.Builder(this).setTitle("复选框").setMultiChoiceItems( new String[] { "Item1", "Item2" }, null, null) .setPositiveButton("确定" ,  null) .setNegativeButton("取消" ,  null).show(); 图5效果:信息内容是一组多选框new AlertDialog.Builder(this).setTitle("单选框").setIcon( android.R.drawable.ic_dialog_info).setSingleChoiceItems( new String[] { "Item1", "Item2" }, 0, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, in 。