如何在微调器之前设置进度条?

时间:2011-01-26 06:50:13

标签: android

我有一个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?

1 个答案:

答案 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
    }
}