После нажатия ok в диалоговом окне я должен получить данные из другого места. поэтому я использовал класс Asynctask. Реализация ниже. Но после первого нажатия «ОК» я не получу индикатор прогресса. Я только получить его после второго нормально нажимается (в основном, когда все линии внутри кнопки метод OnClick выполняется ... Что я должен сделать, чтобы получить индикатор сразу после нажатия первой нормально?Asynctask и промежуток времени выполнения
confirmPath= (Button) findViewById(R.id.confirmPath);
confirmPath.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
construction
AlertDialog.Builder builder = new AlertDialog.Builder(Destination.this);
builder.setMessage("Press 'Ok' ")
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
LoadData task = new LoadData();
task.execute();
AlertDialog alertDialog = new AlertDialog.Builder(Destination.this).create();
alertDialog.setTitle("Attention!");
alertDialog.setMessage(" Pay attention");
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
});
alertDialog.show();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// do nothing
}
});
builder.create();
builder.show();
И это класс AsynkTask:
public class LoadData extends AsyncTask<Void, Void, Void> {
ProgressDialog progressDialog;
//declare other objects as per your need
@Override
protected void onPreExecute()
{
progressDialog= ProgressDialog.show(Destination.this, "Progress Dialog Title Text","Please wait", true);
//do initialization of required objects objects here
};
@Override
protected Void doInBackground(Void... params)
{
ReadFromFile readFromFile= new ReadFromFile();
readFromFile.ReadAllData("Data");
//some other tasks to do
return null;
}
@Override
protected void onPostExecute(Void result)
{
super.onPostExecute(result);
progressDialog.dismiss();
};
}
Но мне нужны данные, которые нужно отправить после того, как я нажал первый ok на alertdialog. Но теперь по решению ура я получу его после того, как я нажал confirmPath, который на один шаг раньше .., который неверен –
удалите диалоговое окно предупреждения. Я не понимаю, зачем вам нужен диалог после нажатия кнопки. – John
Icannot удалите его. это часть предупреждающих сообщений, которые мы должны предоставить пользователю. см. ответ –