1
次のコードでは、AsyncTaskを使用してビデオをダウンロードしています。Android Progress Dialogクラスファイルからメッセージを設定する
//DOWNLOAD VIDEOS
private class downloadVideosAsync extends AsyncTask <String, String, String>{
protected void onPreExecute(){
super.onPreExecute();
MyActivity.this.mProgressDialog.setMessage("Downloading Videos...");
}
@Override
protected String doInBackground(String... strings){
try{
VideosC.downloadVideos(VideosM.getVideoNames(), VideosM.getVideoUrls(),
VideosM.getVideoThumbs(), VideosM.getFileModified());
}catch (NullPointerException e){
Log.e(LOG_TAG, e.toString());
}catch(Exception e){
Log.e(LOG_TAG, e.toString());
}
return null;
}
@Override
protected void onPostExecute(String lenghtOfFile) {
new downloadSlideshowsAsync().execute();
}
}
ご覧のとおり、私の進捗状況ダイアログでは、「ビデオのダウンロード...」というメッセージが表示されています。今私がしたいのは、setMessage( "Downloading of 5")のようなものです。しかし問題は私のdownloadVideos関数は別のクラスファイルにあります。VideoController.java
public void downloadVideos(ArrayList<String> VideoNames, ArrayList<String> VideoUrls,
ArrayList<String> VideoThumbs, ArrayList<String> fileModified){
try{
int x;
int videoNamesLenght = VideoNames.size();
File vidFile;
for(x = 0; x < videoNamesLenght; x++) {
String[] videoName = VideoNames.get(x).split("/");
String currentFile = videoName[0] + "." + videoName[1];
String currentFileURL = VideoUrls.get(x) + VideoNames.get(x);
Log.v(LOG_TAG, "currentFileURL: " + currentFileURL);
vidFile = new File(Environment.getExternalStorageDirectory()
+ "/MyApp/Downloads/Videos/", currentFile);
//I want to do maybe here something like
//mProgressDialog.setMessage("Downloading x of y")
downloadVideoFile(currentFile, currentFileURL, vidFile, fileModified.get(x));
}
}catch(Exception e){
Log.e(LOG_TAG, e.toString());
}
}
アイデアはありますか?助けてくれてありがとう! :)
返信ありがとうございます。@rafeal piaoですが、サンプルコードがありますか、実際は初心者です。 :) – MiD
申し訳ありません私の手にサンプルがありません。 –
VideosControllerを呼び出すと、コンテキストオブジェクトを渡すことができます。コンテキストから静的関数を参照することができます。このコードをonPostExecuteメソッドで設定してください。 –