-1
setOnClickListenerで画像をダウンロードするために別のクラスのメソッドにURLを渡していますが、アプリを起動した後、しかし、イメージはダウンロードされていません)しかし、2回目のクリックから完全に動作しています。ここでAndroidのsetOnClickListenerは、アプリケーションの起動後に初めてクリックすると動作しません。
は私のコードです:ここでは
downloadimg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String[] urls = new String[50];
for (int i = 0; i < images.size(); i++) {
urls[i] = images.get(i).getLarge();
}
DownloadImages downloadImages= new DownloadImages();
downloadImages.downloadImage(getActivity(),urls, images.get(0).getName());
Toast.makeText(getActivity(), "Download Completed", Toast.LENGTH_SHORT).show();
getActivity().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
Log.i("TAG", "scanning File jbdv");
}
});
が完了DownloadImagesクラスです
public class DownloadImages extends AppCompatActivity {
public void downloadImage(final Context ctx, String[]imgloc, final String folder) {
for (int i = 0; i < imgloc.length; i++) {
Picasso.with(ctx)
.load(imgloc[i])
.into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
try {
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/~" +folder);
if (!myDir.exists()) {
myDir.mkdirs();
}
String name = new Date().getTime() + ".jpg";
myDir = new File(myDir, name);
FileOutputStream out = new FileOutputStream(myDir);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
Log.i("TAG", "scanning File " +myDir.getAbsolutePath());
} catch (Exception e) {
// some action
}
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
}
);
}
}
}
ここにすべてのコードを入力してください –
この関数の本文を投稿するdownloadimage(....){} –
AsyncTaskを使用していますか?もしそうなら、それはまだダウンロード中であるかもしれません - いくつかの進捗状況ダイアログを表示し、ロードされているかどうかを確認します。あなたのコードから、私はそれが50イメージをダウンロードすることがわかりますか?それはかなり多く、それはすぐに終わらないかもしれません。 –