我有一個用於存儲複製文件的功能。當我點擊複製Button
時,將執行方法複製操作。下面這個方法:無法在onClick上顯示對話框
public void actionCopy() {
Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.progress_layout);
TextView progressTitle = (TextView) dialog.findViewById(R.id.progress_title);
progressTitle.setText("Copying...");
final ProgressBar progressBar = (ProgressBar) dialog.findViewById(R.id.progress_bar);
progressBar.setMax(listData.size());
progressBar.setProgress(0);
dialog.show();
for(int i = 0; i < listData.size(); i++) {
String value = new CopyDataUtils(listData.get(i)).execute().get();
progressBar.setProgress(i + 1);
Log.i(TAG, value);
}
}
而且CopyDataUtils的AsyncTask:
public class CopyDataUtils extends AsyncTask<Void, Void, String> {
private DataItem item;
public CopyDataUtils(DataItem item) {
this.item = item;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(Void... params) {
//...code copy file here
return ...;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
}
}
所以我的問題是:當actionCopy執行,我想對話框顯示顯示。但沒有發生。執行for(..)
後,顯示對話框。 什麼問題?在執行多線程複製數據之前,有沒有關於顯示對話框的建議? 對不起,我的英文不好!
**更新: 我試着把對話框放到AsyncTask中,並顯示在方法onPreExecute
中。但沒有任何變化。
什麼有錯嗎? –
我試過了。但沒什麼可改變的 –