我有一个alertdialog,其中的数据来自互联网。有时由于互联网连接数据来得晚。所以我想在微调器显示自己之前进度条。在获取数据时我写了这个。
final String[] List= new String{ 'abc', 'def'};
ArrayList<String> ListArray = new ArrayList<String>();
ListArray.addAll(Arrays.asList(List));
ListAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, ListArray);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Data");
builder.setAdapter(ListAdapter, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
txtExec.setText(ClientList[item]);
}
});
AlertDialog alert = builder.create();
alert.show();
ProgressDialog dialog = new ProgressDialog(this);
dialog.setMessage("Please wait while loading...");
dialog.setIndeterminate(true);
dialog.setCancelable(true);
那么如何在警告对话框之前调整progessDialog?
答案 0 :(得分:1)
您应该在线程或AsyncTask中加载来自互联网的数据。
here你有一篇描述可能性的小文章。
我推荐使用AsyncTask方法,我发布了一些关于如何操作的伪代码,请参阅文档以获取有关如何将您在doInBackground
方法中加载的数据传递给例如onPostExecute
。
private class MyTask extends AsyncTask<Void, Void, Void> {
protected void onPreExecute() {
//setup and display the progressDialog
}
protected Void doInBackground(Void... params) {
//do your data loading
return null;
}
protected void onPostExecute(Void void) {
//dismiss progress dialog and show the spinner
}
}