Создание независимого диалога «Загрузка» - PullRequest
0 голосов
/ 03 июня 2011

Я хотел бы создать класс 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 голосов
/ 03 июня 2011

Почему бы не создать конструктор, который принимает один аргумент объекта Context, сохранить его в поле, и тогда вы сможете получить к нему доступ там, где это необходимо? Деятельность, создающая экземпляр класса loadingScrn, просто передает объект Context при его создании.

Не забудьте сделать конструктор по умолчанию закрытым, чтобы можно было создать экземпляр loadingScrn, только если предоставлен Context.

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

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

    private locaingScrn()
    {
        super();
    }
    .
    .
    .
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...