【问题标题】:Android Random string generated from int从 int 生成的 Android 随机字符串
【发布时间】:2011-09-07 00:00:40
【问题描述】:

基本上我试图在页面加载时生成一个随机字符串。问题是我不知道如何将创建的随机整数作为我的开关盒的变量。任何人都可以修改我的代码并帮助我吗?

代码

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>

【问题讨论】:

  • 您可以在 'A' 和 'Z' 的 ASCII 值之间生成随机数并从中创建一个字符串?

标签: android string random int


【解决方案1】:

你不应该随机开启,你应该先得到一个int:

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

或者,当你实现它时

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

【讨论】:

  • 也许最好不要切换,而是使用数组。
  • 谢谢 MByD。有用。如果我有 10 个开关盒,我是否只需将数字 3 更改为 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));

【讨论】:

  • 这只会生成一个数字...?
  • 如果你想要更明确:String str = String.valueOf(randomNumber).
猜你喜欢
  • 2017-08-01
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-21
相关资源
最近更新 更多