什么是之间的不同removeDialog()和dismiss()和dismissDialog()?因为我可以毫无问题地一起使用它们.
而且是事在实现时DialogInterface.OnClickListener还是AlertDialog.OnClickListener?
我搜索了很多但找不到任何有用的东西.
编辑: 我正在为Android 2.3开发.
示例代码:
public final class OptionsPreference extends PreferenceActivity implements DialogInterface.OnClickListener
{
private AlertDialog noInternetDialog = null;
//...
@Override
protected void onPause()
{
if (this.noInternetDialog != null)
{
Log.d(LOG_TAG, "Destroying noInternetDialog...");
this.noInternetDialog.dismiss(); // X?
removeDialog(DIALOG_NOINTERNET); // X?
dismissDialog(DIALOG_NOINTERNET); // X?
this.noInternetDialog = null;
}
super.onPause();
}
@Override
protected final Dialog onCreateDialog(final int id)
{
switch (id)
{
case DIALOG_NOINTERNET:
{
final AlertDialog.Builder _builder = new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_info).setMessage(R.string.str_nointernet);
_builder.setCancelable(false);
_builder.setPositiveButton(R.string.str_wifisettings, this);
_builder.setNeutralButton(R.string.str_ok, this);
this.noInternetDialog = _builder.create();
if (!isFinishing())
{
this.noInternetDialog.show();
}
return this.noInternetDialog;
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
dismissDialog(int id):解除具有指定ID的对话框.它只隐藏对话框,但仍保留包含此对话框的Activity的内部引用,以便将来可以恢复它.在API 13中进行了重新设置.
removeDialog(int id):它还会解除具有指定ID的对话框.意味着它隐藏了特定的对话框,并且还清除了活动的所有引用,因此将来无法恢复.在API 13中弃用.
dismiss():此方法在特定对话框上运行,因为它是Dialog类的方法.它也驳回了对话.你必须拥有一个有效的对话框才能解雇它,否则你将获得异常.
| 归档时间: |
|
| 查看次数: |
1682 次 |
| 最近记录: |