Saya memiliki sejumlah kasing sakelar yang harus dipilih secara acak, tetapi hanya setiap kasing sakelar sekali. Saya membuat generator acak dan array untuk menambahkan kasing, tetapi saya macet karena saya tidak pandai dalam kode. Inilah yang saya miliki saat ini

 public void showRandomButton() {
        //Generate Random Numbers
        final int min = 0;
        final int max = 13;  //n-no of random events
        Random g=new Random();
        int random = g.nextInt((max - min) + 1) + min;
        //Random number 0(inclusive)-9(inclusive)

        while(Arrays.asList(list).contains( random )) {
            int numb = g.nextInt((max - min) + 1) + min;
            random = numb;

        }
        switch(random){
            case 1:
                mbutton1.setVisibility( View.VISIBLE );
                mbuttonStart.setVisibility( View.GONE );
                break;
            case 2:
                mbutton2.setVisibility( View.VISIBLE );
                mbuttonStart.setVisibility( View.GONE );
                break;
                //Function 2 break;

Terima kasih atas bantuan Anda

-2
Timon Doo 23 Januari 2020, 03:27

2 jawaban

Jawaban Terbaik

Coba ini:

int min = 0;
int max = 13;  
List<Integer> list = new ArrayList<Integer>();

for(int i = min; i <max;)
{
int rand = ((int)(Math.random() * max)) + 1;
if(!list.contains(rand))
{
    list.add(rand); // it will be added only if not in list
    i++;
}
}
2
haresh 23 Januari 2020, 01:26

Anda harus memasukkan switch/case ke dalam loop, jika tidak maka hanya melalui saklar sekali setelah loop.

0
Ayfri 23 Januari 2020, 00:43