繁体   English   中英

我正在使用Android重命名应用程序

[英]I'm making a renaming application in Android

安多里德

我想在执行重命名任务时显示进度对话框。 单击重命名按钮后,将出现该对话框。 但是,重命名功能(循环)结束后,将显示进度对话框。 这是我的代码

public void onRenameClicked(View v){
    ProgressTask task = new ProgressTask();
    task.execute();
    for(int i = 0; i < num_of_files; i++){
            rename(file[i]);
    }
}

这是内部类以显示对话框

class ProgressTask extends AsyncTask<Integer, Void, Void>{
    ProgressDialog pd = new ProgressDialog(MainActivity.this);
    @Override
    protected Void doInBackground(Integer... i) {
        for(int j = 0; j < item.size(); j++) {
            pd.setProgress(j);
            pd.setMessage((j) + "/" + item.size());
        }
        return null;
    }
    @Override
    protected void onPreExecute() {
        pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        pd.setTitle("변경중");
        pd.setMax(item.size());
        pd.show();
    }
}

你必须用

@Override
protected void onProgressUpdate(Integer... values) {
       super.onProgressUpdate(values);
       pd.setProgress(values[0]);
       pd.setMessage((values[0]) + "/" + values[1]);
}

publishProgress(j, item.size());

doInBackground() 这些修改是必需的,因为setProgresssetMessage必须在UI线程中而不是在后台线程中执行。

您确实意识到您正在调用异步任务,而没有数据..因此它很快完成。 你或许应该在传递通过参数文件到的AsyncTask的列表,然后相应地处理这些电话为每个文件里面的AsyncTask和更新的AsyncTask的进度完成重命名文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM