【发布时间】:2015-03-24 12:55:23
【问题描述】:
我正在尝试在我的代码中显示一个警报对话框。
它在构建时需要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 没有弹出。如何将我的LoginActivity 的Context 作为参数传递?
【问题讨论】:
-
我认为你应该将 Context 作为参数传递给
alertFailure。 -
在 MyApplication 中,尝试以这种方式分配上下文:
MyApplication.context = this; -
只做这个 AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
-
那么你有什么解决办法吗??
标签: java android android-alertdialog android-context