我决定将所有对话框放在Notify类中。
但是,当我尝试调用对话框时,应用程序崩溃
这是Notify类:
public class Notify extends Activity
{
public void errorHandler(String title, Exception e)
{
eH(title, e);
}
public void messageBox(String title, String details)
{
alertDialog(title, details);
}
//***************************************************************
//display error dialog.
//****************************************************************
private void eH(String method, Exception e)
{
Log.e("FIRSTDROID EXCEPTION", method + " : " + e.getMessage());
e.printStackTrace();
AlertDialog alertDialog;
alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle(method);
alertDialog.setMessage(e.getMessage());
alertDialog.setIcon(R.drawable.quiticon);
alertDialog.setCanceledOnTouchOutside(true);
alertDialog.show();
}
//*************************************************************
//generic dialog for messages to the user
//*************************************************************
private void alertDialog(String title, String message)
{
Log.i("Message", message);
AlertDialog.Builder messageBox;
messageBox = new AlertDialog.Builder(null);
messageBox.setTitle(title);
messageBox.setMessage(message);
messageBox.setIcon(R.drawable.infoicon);
messageBox.setNeutralButton("OK", null);
messageBox.setCancelable(false);
messageBox.show();
}
我创建一个新的Notify实例,并调用messageBox,如下所示:
Notify notify = new Notify();
notify.messageBox("Test Title", "Test Message");
答案 0 :(得分:0)
android.app.AlertDialog.Builder.Builder(Context context),所以你需要像eH()方法那样传递this或ApplicationContext,
alertDialog = new AlertDialog.Builder(this).create();
另一方面,为什么你要创建一个活动并调用它的公共方法?这是什么意思,我不知道它。
答案 1 :(得分:0)
在初始化messageBox变量时,您在alertDialog方法中忘记了 .create()。这可能会导致应用程序崩溃。 您应该在 AlertDialog.Builder 中传递上下文,例如 messageBox = new AlertDialog.Builder(getApplicationContext()); 或 messageBox = new AlertDialog.Builder(this) 强>