创建独立的“加载”对话框

时间:2011-06-03 14:25:14

标签: android android-context

我想创建一个可以被任何活动使用的LoadingDialog类。我想出了这样的代码:

public class loadingScrn extends AsyncTask<String,Void,Void> {

ProgressDialog dialog=null;

protected void onPreExecute() {
    dialog = ProgressDialog.show(null, "", "", true);
}

protected Void doInBackground(String... text) {
    dialog.setMessage(text[0]);
    return(null);
}

protected void onProgressUpdate() { }

protected void onPostExecute(Void unused) {
        if(dialog!=null)
        dialog.dismiss();
    }

}

但我有一个问题 - 对话的愚蠢“背景”!我的“加载”类是独立的,因此我无法拨打getApplicationContext(),也不能拨打getBaseContext()。我根本不知道从哪里获取上下文!你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

为什么不创建一个构造函数,它接受Context对象的单个参数,将其存储在一个字段中,然后您可以在需要的地方访问它?创建类loadScrn实例的Activity只是在创建Context对象时传递它。

请记住将默认构造函数设为私有,以便只有在提供了Context的情况下才能创建loadingScrn的实例。

public class loadingScrn extends AsyncTask<String,Void,Void> {
    private final Context context;

    public loadingScrn( Context context )
    {
        super();
        this.context = context;
    }

    private locaingScrn()
    {
        super();
    }
    .
    .
    .
}