如何在onDestory()之后显示alrert对话框? package com.example.test3; 导入java.util.HashMap; 导入android.os.Bundle; 导入android.app.Activity; 导入android.app.AlertDialog; 导入android.app.DialogFragment; 导入android.app.FragmentManager; 导入android.content.Context; 导入android.content.DialogInterface; 导入android.content.SharedReferences; 导入android.util.Log; 导入android.view.Menu; 导入android.view.view; 导入android.view.view.OnClickListener; 导入android.widget.Button; 导入android.widget.EditText; 公共类Test3扩展了活动{ 按钮testShowPinDialogButton; 公共警报对话框警报创建; AlertDialog.Builder警报; 私有HashMap状态; 编辑文本输入; 语境; 私有字符串tag=“Test3”; 专用字符串click1=“click1”; 私人共享引用共享引用; 私有共享参考。编辑器; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_test3); 上下文=这个; sharedPreferences=getPreferences(模式\私有); editor=SharedReferences.edit(); testShowPinDialogButton=(按钮)findViewById(R.id.testShowPinDialogBbutton); testShowPinDialogButton.setOnClickListener(showPinDialog); pinDialogState=newHashMap(); d(标记“onCreate()”); } 私有OnClickListener showPinDialog=新OnClickListener(){ @凌驾 公共void onClick(视图v){ 启动对话框(); } }; @凌驾 公共布尔onCreateOptions菜单(菜单){ //为菜单充气;这会将项目添加到操作栏(如果存在)。 getMenuInflater().充气(R.menu.activity_test3,菜单); 返回true; } 受保护的void启动对话框(){ alert=新建AlertDialog.Builder(上下文); 警报。设置标题(“标题”); 警报。设置消息(“消息”); alert.setPositiveButton(“确定”,新的DialogInterface.OnClickListener(){ public void onClick(对话框接口对话框,int whichButton){ } }); alert.setNegativeButton(“取消”, 新建DialogInterface.OnClickListener(){ public void onClick(对话框接口对话框,int whichButton){ dialog.dismise(); pinDialogState.put(“click1”,false); } }); Log.d(标记“launchDialog()”); alertCreate=alert.create(); alertCreate.show(); } @凌驾 受保护的void onPause(){ super.onPause(); Log.d(标记“onPause()”); if(alertCreate!=null){ alertCreate.disclose(); 编辑器.putBoolean(单击1,为真); } } @凌驾 受保护的void onRestart(){ super.onRestart(); } @凌驾 受保护的void onResume(){ //TODO自动生成的方法存根 super.onResume(); Log.d(“Test3”,“onResume()”); alertCreate.show(); } @凌驾 受保护的空onDestroy(){ super.ondestory(); Log.d(“Test3”,“onDestroy()”); } }
在警报对话框从onPause()中被取消后,如何重新显示该对话框,这一逻辑一直困扰着我。我在考虑共享首选项,但我怎么知道在活动被破坏之前对话框正在显示,而现在用户又回到应用程序中,我必须显示对话框。我还听说,在活动被销毁后,简单地调用alertDialog.show()将不起作用。我能做什么?谢谢。也许克劳顿管用,我不知道,但试试:如何在onDestory()之后显示alrert对话框? package com.example.test3; 导入java.util.HashMap; 导入android.os.Bundle; 导入android.app.Activity; 导入android.app.AlertDialog; 导入android.app.DialogFragment; 导入android.app.FragmentManager; 导入android.content.Context; 导入android.content.DialogInterface; 导入android.content.SharedReferences; 导入android.util.Log; 导入android.view.Menu; 导入android.view.view; 导入android.view.view.OnClickListener; 导入android.widget.Button; 导入android.widget.EditText; 公共类Test3扩展了活动{ 按钮testShowPinDialogButton; 公共警报对话框警报创建; AlertDialog.Builder警报; 私有HashMap状态; 编辑文本输入; 语境; 私有字符串tag=“Test3”; 专用字符串click1=“click1”; 私人共享引用共享引用; 私有共享参考。编辑器; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_test3); 上下文=这个; sharedPreferences=getPreferences(模式\私有); editor=SharedReferences.edit(); testShowPinDialogButton=(按钮)findViewById(R.id.testShowPinDialogBbutton); testShowPinDialogButton.setOnClickListener(showPinDialog); pinDialogState=newHashMap(); d(标记“onCreate()”); } 私有OnClickListener showPinDialog=新OnClickListener(){ @凌驾 公共void onClick(视图v){ 启动对话框(); } }; @凌驾 公共布尔onCreateOptions菜单(菜单){ //为菜单充气;这会将项目添加到操作栏(如果存在)。 getMenuInflater().充气(R.menu.activity_test3,菜单); 返回true; } 受保护的void启动对话框(){ alert=新建AlertDialog.Builder(上下文); 警报。设置标题(“标题”); 警报。设置消息(“消息”); alert.setPositiveButton(“确定”,新的DialogInterface.OnClickListener(){ public void onClick(对话框接口对话框,int whichButton){ } }); alert.setNegativeButton(“取消”, 新建DialogInterface.OnClickListener(){ public void onClick(对话框接口对话框,int whichButton){ dialog.dismise(); pinDialogState.put(“click1”,false); } }); Log.d(标记“launchDialog()”); alertCreate=alert.create(); alertCreate.show(); } @凌驾 受保护的void onPause(){ super.onPause(); Log.d(标记“onPause()”); if(alertCreate!=null){ alertCreate.disclose(); 编辑器.putBoolean(单击1,为真); } } @凌驾 受保护的void onRestart(){ super.onRestart(); } @凌驾 受保护的void onResume(){ //TODO自动生成的方法存根 super.onResume(); Log.d(“Test3”,“onResume()”); alertCreate.show(); } @凌驾 受保护的空onDestroy(){ super.ondestory(); Log.d(“Test3”,“onDestroy()”); } },android,android-alertdialog,Android,Android Alertdialog,在警报对话框从onPause()中被取消后,如何重新显示该对话框,这一逻辑一直困扰着我。我在考虑共享首选项,但我怎么知道在活动被破坏之前对话框正在显示,而现在用户又回到应用程序中,我必须显示对话框。我还听说,在活动被销毁后,简单地调用alertDialog.show()将不起作用。我能做什么?谢谢。也许克劳顿管用,我不知道,但试试: 克劳顿是一个不适合的图书馆,简单,容易,快速 也许克劳顿管用,我不知道,但是试试: 克劳顿是一个不适合的图书馆,简单,容易,快速 使用共享首选项是正确的 在on
克劳顿是一个不适合的图书馆,简单,容易,快速 也许克劳顿管用,我不知道,但是试试:
克劳顿是一个不适合的图书馆,简单,容易,快速 使用共享首选项是正确的 在
onPouse()
方法中,将警报消息另存为标志并打开它onResume()
:
您使用共享首选项是正确的 在
onPouse()
方法中,将警报消息另存为标志并打开它onResume()
:
你说得对,在共享首选项中添加一些信息。加载活动后,从中提取该信息。请您进一步澄清。如何重新显示?您是对的,请在共享首选项中添加一些信息。加载活动后,从中提取该信息。请您进一步澄清。我该如何重新展示?谢谢。他们对对话的外观非常挑剔。谢谢。他们对对话框的外观非常挑剔。这不起作用。它在onResume()中的alertDialog.show()上崩溃。@NomanArain问候语,例如,这只是代码片段。我确信你需要在几个地方添加验证。请向您展示r崩溃。这不起作用。它在onResume()中的alertDialog.show()上崩溃。@NomanArain问候语,例如,这只是代码片段。我确信你需要在几个地方添加验证。请给你看一下这辆车。
package com.example.test3;
import java.util.HashMap;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DialogFragment;
import android.app.FragmentManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class Test3 extends Activity {
Button testShowPinDialogButton;
public AlertDialog alertCreate;
AlertDialog.Builder alert;
private HashMap<String, Boolean> pinDialogState;
EditText input;
Context context;
private String tag = "Test3";
private String click1 = "click1";
private SharedPreferences sharedPreferences;
private SharedPreferences.Editor editor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test3);
context = this;
sharedPreferences = getPreferences(MODE_PRIVATE);
editor = sharedPreferences.edit();
testShowPinDialogButton = (Button) findViewById(R.id.testShowPinDialogBbutton);
testShowPinDialogButton.setOnClickListener(showPinDialog);
pinDialogState = new HashMap<String, Boolean>();
Log.d(tag, "onCreate()");
}
private OnClickListener showPinDialog = new OnClickListener() {
@Override
public void onClick(View v) {
launchDialog();
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_test3, menu);
return true;
}
protected void launchDialog() {
alert = new AlertDialog.Builder(context);
alert.setTitle("Title");
alert.setMessage("Message");
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
alert.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.dismiss();
pinDialogState.put("click1", false);
}
});
Log.d(tag, "launchDialog()");
alertCreate = alert.create();
alertCreate.show();
}
@Override
protected void onPause() {
super.onPause();
Log.d(tag, "onPause()");
if (alertCreate != null) {
alertCreate.dismiss();
editor.putBoolean(click1, true);
}
}
@Override
protected void onRestart() {
super.onRestart();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.d("Test3", "onResume()");
alertCreate.show();
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("Test3", "onDestroy()");
}
}
public class Test3 extends Activity {
....
SharedPreferences mPrefs = context.getSharedPreferences("MyPrefs", 0);
....
@Override
protected void onPause() {
super.onPause();
Log.d(tag, "onPause()");
SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean("isShowed", alertCreate );
editor.commit();
if (alertCreate != null) {
alertCreate.dismiss();
editor.putBoolean(click1, true);
}
}
....
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.d("Test3", "onResume()");
boolean isShow = mPrefs.getBoolean("isShowed", false);
if(isShow == true){
alertCreate.show();
.....
}
}
}