【问题标题】:How to randomize if statements within android development如何在android开发中随机化if语句
【发布时间】:2014-08-12 17:37:18
【问题描述】:

我正在 android 中构建一个问卷类型的应用程序,我想知道如果 if 语句具有相同的值,是否有办法随机化最终输出?换句话说,我不希望每次都出现一个结果,我希望结果在“GOOD JOB”和“WELL DONE”之间随机化。有人知道这是否可能吗?

这是我的代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_system);
    RadioGroup gender = (RadioGroup) findViewById(R.id.answer1);
    gender.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            // TODO Auto-generated method stub
            switch (checkedId) {
            case R.id.answer1A:
                ans1 = 1;
                break;
            case R.id.answer1B:
                ans1 = 2;
                break;
            }
        }
    });
    RadioGroup nutrition = (RadioGroup) findViewById(R.id.answer2);
    nutrition.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            // TODO Auto-generated method stub
            switch (checkedId) {
            case R.id.answer2A:
                ans2 = 1;
                break;
            case R.id.answer2B:
                ans2 = 2;
                break;
            }
        }
    });


    btnSubmitQuiz = (Button) findViewById(R.id.submit);
    btnSubmitQuiz.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // 1
            if (ans1 == 1 && ans2 == 1) {

                displayResult("good job");

            }

            if (ans1 == 1 && ans2 == 1 ) {

                displayResult("well done");

            }


            else {

                displayResult("FAIL");

            }
        }

        private void displayResult(String result) {
            Intent i = new Intent("com.example.system.SHOWRESULT");
            i.putExtra("unique_constant", result);
            startActivity(i);

        }
    });

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.system, menu);
    return true;
}

}

【问题讨论】:

  • 当然。编写一个方法,根据从 0 到数组大小的随机数从数组中选择一个字符串。

标签: java android random


【解决方案1】:

您可以有一个函数从正确结果响应的字符串数组中生成随机索引。

String[] correctResults;
Random randomGenerator;

public void onCreate (Bundle savedInstanceState) {
    //All your init stuff...
    generator = new Random();
    correctResults = new String[] {"good job", "well done"};
}

public String getRandomCorrectResult() {
    return correctResults[generator.nextInt(correctResults.length)];
}

然后在 if 语句中调用 getRandomCorrectResult()!

【讨论】:

  • 不错的答案,但我认为你牵着人们的手对他们帮助不大。
【解决方案2】:

我不会为您编写实际代码,因为这会带走乐趣,但是您可以使用一个名为 displayPositiveResult() 的函数来代替 displayResult("GOOD JOB")

在此函数中,您将从包含诸如“干得好!”、“你做到了!”、“Way to go!”之类的字符串数组中随机选择一个字符串

你明白了。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多