I use asynctask to get data from web services. But progessdialog not show when thread execute
private class Task_Bank extends AsyncTask<Void, Void, ArrayList<String>>{
@Override
protected ArrayList<String> doInBackground(Void... params) {
ArrayList<String> arrayBankL = new ArrayList<String>();
String url="http://qhoang.org/webservices/get_list_bank.php";
JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = jsonParser.getJSONFromURL(url);
int i = 0;
try{
JSONArray array_bank = jsonObject.getJSONArray("list_bank");
for(i=0;i<array_bank.length();i++){
JSONObject node = array_bank.getJSONObject(i);
JSONObject c = node.getJSONObject("node_list_bank");
String namebank = c.getString("tennganhang");
arrayBankL.add(namebank);
}
}catch(JSONException e){
e.printStackTrace();
}
return arrayBankL;
}
@Override
protected void onPostExecute(ArrayList<String> result) {
ArrayAdapter<String> arrayAdapter_bank = new ArrayAdapter<String>(TaskAActivity.this,android.R.layout.simple_spinner_item,result);
arrayAdapter_bank.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spn_bank.setAdapter(arrayAdapter_bank);
}
@Override
protected void onProgressUpdate(Void... values) {
ProgressDialog MyDialog = ProgressDialog.show( TaskAActivity.this, " " , " Loading. Please wait ... ", true);
}
}
OnCreate()
Task_Bank a = new Task_Bank();
a.execute();
JSONParser is class i code to use parser JSON from webservices result.
You should
show()dialog inonPreExecute()that starts before task starting and is right place for this. inonProgressUpdateyou should only increment progress for yourProgressDialog. and when task finished so inonPostExecute()callMyDialog.dismiss()It could be like this