Ошибка со случайной галереей изображений URL.

Я сделал случайный просмотр галереи изображений в галерее Android Touch, но хочу показать случайные изображения. Я попытался создать ссылку со случайным числом.

Я не могу играть, и я понятия не имею, как я могу это решить.

Пожалуйста помоги.

Мероприятия:

package com.ddd.fun1234;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

import ru.truba.touchgallery.GalleryWidget.GalleryViewPager;
import ru.truba.touchgallery.GalleryWidget.UrlPagerAdapter;
import ru.truba.touchgallery.GalleryWidget.BasePagerAdapter.OnItemChangeListener;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;

public class GalleryUrlAvtivity extends Activity {

private GalleryViewPager mViewPager;

public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
}

public Bitmap GetImage() {
 Random rn = new Random();
 int n = 200000 - 199000 + 1;
 int i = rn.nextInt() % n; 

 URL tempURL = null;
 try {
 tempURL = new URL("http://miniz.co/RageToonApp/Images/" + rn + ".jpg");
 } catch (MalformedURLException e1) {
 e1.printStackTrace();
 }

 List<string> items = new ArrayList<string>();
 Collections.addAll(items, tempURL);

 UrlPagerAdapter pagerAdapter = new UrlPagerAdapter(this, items);
 pagerAdapter.setOnItemChangeListener(new OnItemChangeListener()
 {
 @Override
 public void onItemChange(int currentPosition)
 {

 }
 });

 mViewPager = (GalleryViewPager)findViewById(R.id.viewer);
 mViewPager.setOffscreenPageLimit(3);
 mViewPager.setAdapter(pagerAdapter);
}

}
</string></string>

В коллекции Collections.addAll произошел сбой. Что я могу использовать вместо этого?

Когда у вас есть идея, что я могу сделать или что является хорошим вторым вариантом, напишите об этом.

Даниил

1 ответ

Проблема в этих строках:

Random rn = new Random();
...
int i = rn.nextInt() % n; 
...
tempURL = new URL("http://miniz.co/RageToonApp/Images/" + rn + ".jpg");

Вы вычисляете i но вместо того, чтобы использовать его в URL-адресе, вместо этого вы используете rn. По умолчанию это вызывает Random.toString(), который содержит символы (в данном случае, @), которые являются незаконными в URL-адресах.

Чтобы исправить это, вы должны изменить последнюю строку:

tempURL = new URL("http://miniz.co/RageToonApp/Images/" + i + ".jpg");

licensed under cc by-sa 3.0 with attribution.