Случайная строка Android, сгенерированная из int

#android #string #random #int

#Android #строка #Случайный #int

Вопрос:

По сути, я пытаюсь сгенерировать случайную строку при загрузке страницы. Проблема в том, что я не знаю, как сделать созданное случайное целое число переменной для моего случая переключения. Кто-нибудь может изменить мой код и помочь мне?

код

 import java.util.Random;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class ask_2 extends Activity {

TextView ActivityNumber;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ask2);

    ChooseActivity();
}

private void ChooseActivity() {
    Random myRandom = new Random();
    TextView textGenerateNumber = (TextView) findViewById(R.id.generatenumber);
    textGenerateNumber.setText(String.valueOf(myRandom.nextInt(2)));
    TextView textGenerateDesc = (TextView) findViewById(R.id.generatedesc);
    switch (myRandom) {
    case 0:
        textGenerateDesc.setText("Hello0");
        break;
    case 1:
        textGenerateDesc.setText("Hello1");
        break;
    case 2:
        textGenerateDesc.setText("Hello2");
        break;
    }

}
}
  

XML

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical">
<TextView android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:text="Activity " />
<TextView android:id="@ id/generatenumber"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:text="Number" />
<TextView android:id="@ id/generatedesc" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:text="Description" />

</LinearLayout>
  

Комментарии:

1. Вы могли бы сгенерировать случайные числа между значениями ASCII ‘A’ и ‘Z’ и создать из них строку?

Ответ №1:

Вы не должны включать random, вы должны сначала получить int:

 Random rand = new Random();
int myRandom = rand.nextInt() % 3;
  

или, как вы это реализовали

 Random myRandom = new Random();
//...
switch(myRandom.nextInt() %3) {
  

Комментарии:

1. возможно, было бы лучше вообще не переключаться и вместо этого использовать массив.

2. Спасибо MByD. Это работает. Мне просто изменить число 3 на 10, если у меня есть 10 вариантов переключения?

Ответ №2:

В вашем коде у вас есть myRandom.nextInt(2)) . Это сгенерирует 0 или 1, но в вашем коммутаторе вы проверяете значения 0, 1 или 2. Я предполагаю, что вам нужно одно из этих значений.

 Random myRandom = new Random();
int randomNumber = myRandom.nextInt(3);
TextView textGenerateNumber = (TextView) findViewById(R.id.generatenumber);
textGenerateNumber.setText(String.valueOf(randomNumber));
  

Комментарии:

1. это генерирует только число …?

2. Если вы хотите, чтобы она была более явной: String str = String.valueOf(randomNumber) .