Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

android random array

I want to change the code, so that when you click the "next number" button each time, it generates a random number. When generating the last number, the app will do the sorting except the last number. After generating the last number, click the button will have no response. You need to click "clear" button to restart. And no repetition is appeared. Here is my code MainActivity.java

public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

int Count=0;
public void generate(View v){
    Random myRandom = new Random();

    TextView tv_number_one = (TextView)findViewById(R.id.tv_number_one);
    TextView tv_number_two = (TextView)findViewById(R.id.tv_number_two);
    TextView tv_number_three = (TextView)findViewById(R.id.tv_number_three);
    TextView tv_number_four = (TextView)findViewById(R.id.tv_number_four);
    TextView tv_number_five = (TextView)findViewById(R.id.tv_number_five);
    TextView tv_number_six = (TextView)findViewById(R.id.tv_number_six);
    TextView tv_number_seven = (TextView)findViewById(R.id.tv_number_seven);
    String ran=String.valueOf(myRandom.nextInt(50));
    switch(Count%7){

        case 0:
            tv_number_one.setText(ran);
            break;

        case 1:
            tv_number_two.setText(ran);
            break;

        case 2:
            tv_number_three.setText(ran);
            break;

        case 3:
            tv_number_four.setText(ran);
            break;

        case 4:
            tv_number_five.setText(ran);
            break;

        case 5:
            tv_number_six.setText(ran);
            break;

        case 6:
            tv_number_seven.setText(ran);
            break;

    }
    Count++;
}
public void clear (View v){
TextView tv_number_one = (TextView)findViewById(R.id.tv_number_one);
TextView tv_number_two = (TextView)findViewById(R.id.tv_number_two);
TextView tv_number_three = (TextView)findViewById(R.id.tv_number_three);
TextView tv_number_four = (TextView)findViewById(R.id.tv_number_four);
TextView tv_number_five = (TextView)findViewById(R.id.tv_number_five);
TextView tv_number_six = (TextView)findViewById(R.id.tv_number_six);
TextView tv_number_seven = (TextView)findViewById(R.id.tv_number_seven);

tv_number_one.setText("?");
tv_number_two.setText("?");
tv_number_three.setText("?");
tv_number_four.setText("?");
tv_number_five.setText("?");
tv_number_six.setText("?");
tv_number_seven.setText("?");

}

}

activity_main

<TextView android:text="\?" android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/tv_number_one"
    android:textSize="30sp"
    android:textIsSelectable="true"
    android:layout_marginLeft="10dp"
    android:textColor="#67ceff"
    android:layout_marginStart="20dp"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="\?"
    android:id="@+id/tv_number_two"
    android:layout_alignBottom="@+id/tv_number_one"
    android:layout_toRightOf="@+id/tv_number_one"
    android:layout_toEndOf="@+id/tv_number_one"
    android:textColor="#67ceff"
    android:textSize="30sp"
    android:layout_marginLeft="20dp"
    android:layout_marginStart="20dp"
    />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="\?"
    android:id="@+id/tv_number_three"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/tv_number_two"
    android:layout_toEndOf="@+id/tv_number_two"
    android:layout_marginLeft="20dp"
    android:textColor="#67ceff"
    android:textSize="30sp"
    android:layout_marginStart="20dp"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="\?"
    android:id="@+id/tv_number_four"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/tv_number_three"
    android:layout_toEndOf="@+id/tv_number_three"
    android:textColor="#67ceff"
    android:textSize="30sp"
    android:textIsSelectable="true"
    android:layout_marginLeft="20dp"
    android:layout_marginStart="20dp"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="\?"
    android:id="@+id/tv_number_five"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/tv_number_four"
    android:layout_toEndOf="@+id/tv_number_four"
    android:layout_marginLeft="20dp"
    android:textColor="#67ceff"
    android:textSize="30sp"
    android:layout_marginStart="20dp"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="\?"
    android:id="@+id/tv_number_six"
    android:layout_alignBottom="@+id/tv_number_five"
    android:layout_toRightOf="@+id/tv_number_five"
    android:layout_toEndOf="@+id/tv_number_five"
    android:textColor="#67ceff"
    android:textSize="30sp"
    android:layout_marginLeft="20dp"
    android:layout_marginStart="20dp"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="\?"
    android:id="@+id/tv_number_seven"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/tv_number_six"
    android:layout_toEndOf="@+id/tv_number_six"
    android:layout_marginLeft="20dp"
    android:textColor="#6198ff"
    android:textSize="30sp"
    android:layout_marginStart="20dp"/>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="NEXT NUMBER"
    android:id="@+id/button_next_num"
    android:layout_below="@+id/tv_number_one"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="41dp"
    android:onClick="generate"/>

Does anyone know how to do it?

like image 348
Joey Li Avatar asked Sep 07 '26 07:09

Joey Li


1 Answers

just add the code in your onclickListener event of button and set counter integer in onclickListener when count reaches 7 then stop. The code is as below-

public class MainActivity extends AppCompatActivity {
int intCount=0;
int[] arr = new int[7];
final Button nextButton;
Random randomGenerator = new Random(); 

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    nextButton = (Button)findviewbyid(R.id.button_next_num)
    TextView tv_number_one = (TextView)findViewById(R.id.tv_number_one);
    TextView tv_number_two = (TextView)findViewById(R.id.tv_number_two);
    TextView tv_number_three = (TextView)findViewById(R.id.tv_number_three);
    TextView tv_number_four = (TextView)findViewById(R.id.tv_number_four);
    TextView tv_number_five = (TextView)findViewById(R.id.tv_number_five);
    TextView tv_number_six = (TextView)findViewById(R.id.tv_number_six);
    TextView tv_number_seven = (TextView)findViewById(R.id.tv_number_seven);

    button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click   


             intCount++; //when intCount becomes 7 stop execution
             arr[intCount]= randomGenerator.nextInt(100) + 1;;
               // intCount++; //when intCount becomes 7 stop execution
             if(intCount == 1){tv_number_one.setText(arr[intCount]);}
             else if(intCount == 2){tv_number_two.setText(arr[intCount]);}
             else if(intCount == 3){tv_number_three.setText(arr[intCount]);}
             else if(intCount == 4){tv_number_four.setText(arr[intCount]);}
             else if(intCount == 5){tv_number_five.setText(arr[intCount]);}
             else if(intCount == 6){tv_number_six.setText(arr[intCount]);}
             else if(intCount == 7){tv_number_seven.setText(arr[intCount]);}
             else{ intCount=0;nextButton.setEnabled(false);}
            }
        });    
  }
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
  }

   @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
}
like image 155
sud Avatar answered Sep 09 '26 20:09

sud



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!