如何在Java中随机选择按钮文本?

时间:2015-06-18 10:03:28

标签: java android button random

我是土木工程师。现在我正在Android开发中工作。我知道Java和C#,但我精神上设置我的编程知识只是编辑像阅读和理解。如何提高我的技能,比如专门为C#和Java编写程序。

谢谢。

然后是我的问题..

例如,我有3个按钮和3个int值。

按钮点击时,如何使按钮文本随机选择3个int值字符串。

这是Android平台的简单数学游戏。

        TextView textA = (TextView) findViewById(R.id.textView);
        TextView textB = (TextView) findViewById(R.id.textView3);
        final Button button1 = (Button) findViewById(R.id.button1);
        final Button button2 = (Button) findViewById(R.id.button2);
        final Button button3 = (Button) findViewById(R.id.button3);


        Random rand = new Random();
        final int x = rand.nextInt(1000);
        Random randB = new Random();
        int y = randB.nextInt(1000);
        Random randw = new Random();
        int w = randw.nextInt(1000);
        Random randz = new Random();
        int z = randz.nextInt(1000);

        int A = x;
        int B = y;
        int Wrong1 = (A + w);
        int Wrong2 = (A + z);
        final int CorrectAnswer = (A + B);

        String text = "text";
        Button[] arr = {button1, button2, button3};
        Random r = new Random();
        Button b = arr[r.nextInt(arr.length)];
        b.setText(text);

        int Ans1 = CorrectAnswer;
        int Ans2 = Wrong1;
        int Ans3 = Wrong2;


        textA.setText("" + A);
        textB.setText("" + B);
        button1.setText("" + Wrong1);
        button2.setText("" + Wrong2);
        button3.setText("" + CorrectAnswer);
        final int ACAns;
        ACAns = Integer.parseInt(button3.getText().toString());
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int AAns = Integer.parseInt(button1.getText().toString());


                if ((AAns == ACAns)) {
                    Toast.makeText(getBaseContext(), "Your answer is correct!", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getBaseContext(), "Your answer is Wrong!", Toast.LENGTH_SHORT).show();
                }

            }
        });
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int BAns = Integer.parseInt(button2.getText().toString());
                int ACAns = Integer.parseInt(button1.getText().toString());
                if ((BAns == ACAns)) {
                    Toast.makeText(getBaseContext(), "Your answer is correct!", Toast.LENGTH_SHORT).show();
                } else {
                    }    
            }
        });
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int CAns = Integer.parseInt(button3.getText().toString());
                int ACAns = Integer.parseInt(button3.getText().toString());
                if ((CAns == ACAns)) {
                    Toast.makeText(getBaseContext(), "Your answer is correct!", Toast.LENGTH_SHORT).show();                      

                    return;
                } else {
                    Toast.makeText(getBaseContext(), "Your answer is Wrong!", Toast.LENGTH_SHORT).show();
                }

2 个答案:

答案 0 :(得分:1)

拿两个阵列。

String buttonNamesArray[] = {"name1", "name2", "name3"};
int indexArray[] = {0, 1, 2};

现在通过任何逻辑生成随机数,并通过3(indexArray的长度)操作进行模数以获得范围[0-2]中的索引。现在做

randomIndex = randomNumber % 3;
if(indexArray[randomIndex] != -1) {
    //assign the next button value buttonNamesArray[randomIndex]
    indexArray[randomIndex] = -1;
}

循环执行此操作,直到所有按钮都没有结束。

这只是逻辑,而不是实际的代码。

答案 1 :(得分:0)

将字符串值存储在大小为3的数组中。 生成0到2之间的随机数。将该值保存在变量中,并将与该值关联的字符串分配给按钮。通过删除已分配的字符串来减少数组。然后在0和1之间生成一个随机int。再次分配给一个按钮。删除您刚刚分配的元素,最后将最后一个字符串值分配给最后一个按钮。

很抱歉我的手机上没有代码,但在手机上编码并不是很容易。

希望这有帮助