gpt4 book ai didi

java - AlertDialog 不会显示

转载 作者:行者123 更新时间:2023-11-29 05:09:21 25 4
gpt4 key购买 nike

我试图在我的代码中显示一个警告对话框。它在构建时需要一个 Context 作为参数。我希望它在我的 LoginActivity 中弹出:

    public class LoginActivity extends ActionBarActivity
{
// Methods inside
}

但是我生成 alertDialog 的函数在一个单独的类中。因此,为了获得适当的 Context,我尝试了一个额外的类,它为我提供了 ApplicationContext,然后我将其用作必需的参数。

这是我生成 alertDialog 的函数:

    public static void alertFailure(String errorTitle, String errorMessage){
Log.d("Alert Failure", "alerting failure");
AlertDialog.Builder builder = new AlertDialog.Builder(MyApplication.getAppContext()); // Needs context of loginactivity
builder.setTitle(errorTitle);
builder.setMessage(errorMessage);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){

}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}

这是我用来获取 ApplicationContext 的类:

    public class MyApplication extends Application{
private static Context context;

public void onCreate(){
super.onCreate();
MyApplication.context = getApplicationContext();
}

public static Context getAppContext(){
return context;
}
}

当我记录我的程序时,我可以看到我的函数运行正常,但是 alertDialog 没有弹出。如何将 LoginActivityContext 作为参数传递?

最佳答案

你可以重载这个方法

public static void alertFailure(Context context, String errorTitle, String errorMessage) {
Log.d("Alert Failure", "alerting failure");
AlertDialog.Builder builder = new AlertDialog.Builder(context); // Needs context of loginactivity
builder.setTitle(errorTitle);
builder.setMessage(errorMessage);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which){

}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}

并将其命名为 NomeClass.alertFailure(LoginActivity.this, "title", "message");

并且您可以在没有上下文的情况下保留版本:

public static void alertFailure(String errorTitle, String errorMessage){
alertFailure(MyApplication.getContext(), erroTitle, errorMessage);
}

关于java - AlertDialog 不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29233227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com