2017-03-05 24 views
0

我有一个小问题处理数组。“连接”Arraylist到整数表

@Override 
public void run() { 
    TypedArray images = getResources().obtainTypedArray(R.array.images_primes); 

    List<Integer> indexes = Arrays.asList(1,2,3,4,5,6,7,8,9,10); 
    Collections.shuffle(indexes); 

    Log.d("MYAPP", "value: " + indexes); 

    int randomPrimeNumber = (int) (indexes()); 

    // setImageResource to the random chosenImageNumber 
    imageViewMeasurement.setImageResource(images.getResourceId(randomPrimeNumber, R.color.colorGreyMeasuerementScreen)); 
} 

它是做什么的?

  1. 从资源文件(工作) - >(typedArray图像)中获取图像数组。

  2. 列表索引=列表,只要“图像” - >洗牌列表,工作! - > D/MYAPP:值:[4,9,10,8,3,1,7,2,5,6]

3/4。将是:通过“索引”洗牌清单,从那里调用“图像”,setImageresource阵列上的数字。

问题: 关于点2:我可以创建列表索引依赖于images.length的“图像”-array?

关注点3-4:我无法将两个数组(图像/混排索引)放在一起。它显示关于无法将整数转换为int的错误,当我尝试设置时

int randomPrimeNumber = (int) (indexes); 

例如。

是否有可能“混合”两个阵列?

最佳和感谢, tigercode

回答

0

,如果你想生成比images数组的长度小的随机数没有理由创造indexes列表,只需使用Random

Random random = new Random(); 
int randomNumber = random.nextInt(images.length()); 

是的,TypedArray类中有length()方法。

+0

不幸的是,没有。我需要通过列表并从列表中随机地调用每个项目,而不是从列表中挑选出一个项目。

 First code was: TypedArray images = getResources().obtainTypedArray(R.array.images_primes); int chosenImageNumber = (int) (Math.random() * images.length()); 
但这产生例如。来自10个试验的1,3,3,4,4,6,7,8,9,10,不是每个项目;-) – tigercode