使用多个进度对话框的Android

使用多个进度对话框的Android,android,progressdialog,Android,Progressdialog,我正在尝试构建一个类,用于访问web,下载数据,然后将其加载到数据库中。我可以用一个进度对话框来完成这项工作,但我无法理解如何使用多个对话框。在研究这一点时,我发现了数百个进度对话问题,因此它似乎不像应该的那样直截了当 我已经尝试过使用处理程序和线程,但根本无法使用 我正在寻找一个工作代码的例子来实现这一点 下面是我正在尝试的伪代码: public class myactivity extends Activity() { private WebIO webIO ; // w

我正在尝试构建一个类,用于访问web,下载数据,然后将其加载到数据库中。我可以用一个进度对话框来完成这项工作,但我无法理解如何使用多个对话框。在研究这一点时,我发现了数百个进度对话问题,因此它似乎不像应该的那样直截了当

我已经尝试过使用处理程序和线程,但根本无法使用

我正在寻找一个工作代码的例子来实现这一点

下面是我正在尝试的伪代码:

public class myactivity extends Activity()
{
    private WebIO webIO   ;     // web acess io
    private DataIO DataIO ;     // database  io

    public void onCreate( Bundle savedInstanceState ) {
        DataIO = new DataIO( this );
        WebIO  = new WebIO();
        DataIO.open();
        runProgram();
    }
}

private void runProgram() {
    startProgressDialog( "Downloading data from web" );

    new Thread() {
        public void run() {
            try{
                String vData = webIO.getData();

                dismissProgressDialog();

                if  ( vData.length() > 0 ) {
                    promptUser( vData );
    } } } }
}

private void promptUser( vData ){
    if alertdialog_to_prompt_user_to_load(){
    {
        loadData( pData )
    }

private void loadData( String pData ){
    startProgressDialog( "Loading data into database" );

    new Thread() {
        public void run() {
            try{
                loadDataIntoDatabase();

                dismissProgressDialog();
    } } } }
}

拥有多个对话框的唯一方法是将它们层叠在一起,这显然是用户体验的禁忌。在android中,对话框是它们自己的窗口,因此一次只能有一个焦点

要解决您的问题,请使用多个小部件创建一个自定义对话框。最简单的方法是从a开始,覆盖
onCreatedDialog()
以返回带有自定义视图的。要在警报对话框上设置自定义视图,请参阅
AlertDialog
上的方法。e、 g

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    LayoutInflater li = LayoutInflater.from(context);
    View layout = = li.inflate(R.layout.my_dialog);

    return new AlertDialog.Builder(getActivity())
            .setIcon(..)
            .setTitle(...)
            .setView(layout)
            ...
            .create();
}

将所有这些封装到一个多下载进度对话框中是相当不错的,在这个对话框中,您可以注册额外的下载,并让类自动添加一个进度条并注册自己以进行进度更新

异步任务。每个进度1。我尝试了这个,但仍然无法使第二个progressdialog工作。有没有使用多个progressdialogs的例子?Jeffrey,这对我一点帮助都没有。我已经在使用带有自定义视图的自定义对话框。问题是在第二次从“run”块或“runhandler”调用时强制关闭,或者从另一次调用时强制关闭。您的问题没有提到强制关闭,而是多次询问如何使用多个对话框。我建议你发布另一个问题,更清楚地解决你当时的问题。