Java 安卓-随机不工作

Java 安卓-随机不工作,java,android,random,Java,Android,Random,我是新来的,所以请对我宽容一点。我刚刚开始摆弄android开发,第一个应用程序我试着按一个按钮->得到一个随机的句子。我的想法是有两个活动:一个是主活动,你按下按钮,它选择一个随机数,并将其发送到另一个活动(如下所示) 然后,另一个活动接收它,并通过以下方式从XML字符串文件中选择一个句子: Intent intent = getIntent(); String x = intent.getStringExtra(MainActivity.EXTRA_RANDOM); int

我是新来的,所以请对我宽容一点。我刚刚开始摆弄android开发,第一个应用程序我试着按一个按钮->得到一个随机的句子。我的想法是有两个活动:一个是主活动,你按下按钮,它选择一个随机数,并将其发送到另一个活动(如下所示)

然后,另一个活动接收它,并通过以下方式从XML字符串文件中选择一个句子:

Intent intent = getIntent();
    String x = intent.getStringExtra(MainActivity.EXTRA_RANDOM);
    int a = Integer.parseInt(x);
    switch (a){
        case 0:
            send = getString(R.string.random0);
        case 1:
            send = getString(R.string.random1);
        case 2:
            send = getString(R.string.random2);
    }

    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(send);

    setContentView(textView);

现在,由于某种原因,实际发生的情况是,它总是选择可能的更高数量(在本例中为2)。另外,考虑到活动的生命周期,如果我回到主活动,再次按下按钮,它会生成新的数字和句子,还是需要在onResume()/onRestart()方法上定义类似的情况?

您的问题与随机生成器无关。你只是忘了把
break
开关的末尾
案例:

switch (a){
    case 0:
        send = getString(R.string.random0);
        break;

    case 1:
        ...
}

你的问题与随机生成器无关。你只是忘了把
break
开关的末尾
案例:

switch (a){
    case 0:
        send = getString(R.string.random0);
        break;

    case 1:
        ...
}

您必须在交换机中使用
break

您必须在交换机中使用
break
您是否尝试在
activity2
中记录随机整数?为什么要将整数转换为字符串,只需在第二个活动中将其转换回?正如我所述,我刚开始玩这个,putExtra方法要求我提供一个字符串,所以我就这么做了。虽然现在我意识到我可以在我的第二个活动中进行随机生成。
putExtra()
也需要
int
。试试看;)事实上是这样的,但我怎样才能把它放在另一端呢?getStringExtra方法抱怨类型不匹配。是否有另一种方法可以将整数转换为意图?您是否尝试将随机整数记录在
活动2
中?为什么要将整数转换为字符串,只需在第二个活动中将其转换回?正如我所说的,我刚开始玩这个,putExtra方法要求我输入字符串,所以我就这么做了。虽然现在我意识到我可以在我的第二个活动中进行随机生成。
putExtra()
也需要
int
。试试看;)事实上是这样的,但我怎样才能把它放在另一端呢?getStringExtra方法抱怨类型不匹配。有没有其他的方法来表达意图?谢谢。我现在觉得自己是如此的愚蠢>@user3288104发生在我们最好的人身上谢谢你。我现在觉得自己是如此的愚蠢>@user3288104发生在我们当中最好的人身上