Java 代码不工作(随机化数组)
嘿,我想寻求帮助,因为我不知道为什么我的代码不起作用。我是android编程新手,想寻求帮助Java 代码不工作(随机化数组),java,android,arrays,random,Java,Android,Arrays,Random,嘿,我想寻求帮助,因为我不知道为什么我的代码不起作用。我是android编程新手,想寻求帮助 public class MotivationalQuotesMenu extends Activity { int [] images = {R.drawable.mem1, R.drawable.mem2, R.drawable.mem3}; public static int[] RandomizeArray(int[] images){ Ran
public class MotivationalQuotesMenu extends Activity {
int [] images = {R.drawable.mem1, R.drawable.mem2, R.drawable.mem3};
public static int[] RandomizeArray(int[] images){
Random rgen = new Random(); // Random number generator
for (int i=0; i<images.length; i++) {
int randomPosition = rgen.nextInt(images.length);
int temp = images[i];
images[i] = images[randomPosition];
images[randomPosition] = temp;
}
return images;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.motivationalquotesmenu);
Resources res = getResources();
memetitles = res.getStringArray(R.array.omg);
list = (ListView) findViewById(R.id.listView);
loladapter adapter = new loladapter(this, memetitles, images);
list.setAdapter(adapter);
}
public class motivationalquotes功能表扩展活动{
int[]images={R.drawable.mem1,R.drawable.mem2,R.drawable.mem3};
公共静态int[]randomizarray(int[]图像){
Random rgen=new Random();//随机数生成器
对于(int i=0;i在randomizarray
方法中,您在中获取一个数组并创建一个完全不同的数组实例。然后您(大概)获取这个新实例并将其存储在一个变量中,而适配器仍保留原始数组
选项1:修改原始数组
public static void randomizeArray(int[] ar) {
Random rnd = new Random();
for (int i = ar.length - 1; i > 0; i--) {
int index = rnd.nextInt(i + 1);
// Simple swap
int a = ar[index];
ar[index] = ar[i];
ar[i] = a;
}
}
资料来源:
执行randomizarray
后,调用此命令以更新关联的列表视图:
mAdapter.notifyDataSetChanged();
选项2:更新适配器中的引用
让适配器具有更新映像的方法:
public void updateImages(int[] newImages) {
images = newImages;
notifyDataSetChanged();
}
获得新的无序数组后调用此方法
超出范围
由于int[]images
仅与适配器类相关,因此您可能应该将定义移动到适配器类,并使适配器类成为静态的,以避免潜在的内存泄漏。public static int[]randomizarray(int[]images){
public static int[] RandomizeArray(int[] images){
int[] img=images;
ArrayList<Integer> image= new ArrayList<Integer(Arrays.asList(img));
Collections.shuffle(image);
return images;
}
int[]img=图像;
ArrayList image=new ArrayList使用当前代码获取有什么问题?@ρцσѕρєK数组没有随机。@CollapsedSounds:在何处创建loladapter
类的对象请显示code@CollapsedSounds:在何处调用randomizarray
method?@ρаσѕρєK omg im dumby调用了方法im wron同学们,谢谢兄弟,很抱歉问了这么愚蠢的问题
public static int[] RandomizeArray(int[] images){
int[] img=images;
ArrayList<Integer> image= new ArrayList<Integer(Arrays.asList(img));
Collections.shuffle(image);
return images;
}