Как уже упоминалось, причина этого заключается в том, что используемому конструктору ProgressDialog
нужен объект Context
. Вот один пример того, как вы можете сделать это.
Измените класс async
и добавьте конструктор с одним аргументом, который принимает объект Context
. Затем измените метод onPreExecute
, чтобы использовать указанный Context
. Например:
public class async extends AsyncTask<String, Integer, String>{
private Context context;
ProgressDialog prog;
public async(Context context) {
this.context = context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
prog=new ProgressDialog(context);
prog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
prog.setMax(100);
prog.show();
}
// ...
}
Затем создать экземпляр и запустить это AsyncTask
:
async mTask = new async(context);
mTask.execute(params);