Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 代码不工作(随机化数组)_Java_Android_Arrays_Random - Fatal编程技术网

Java 代码不工作(随机化数组)

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

嘿,我想寻求帮助,因为我不知道为什么我的代码不起作用。我是android编程新手,想寻求帮助

    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;
    }