在Android中调用随机方法

时间:2014-03-06 17:15:20

标签: java android random onclick

我有一个问题,我真的不知道是否有可能意识到这一点。情况就是这样;我有五种方法和一个按钮。实际上,如果我想调用一个方法点击我写的按钮:

    btnore.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            //i call the method I need
            Met_one();
        }
    });

我需要做的事情是:

    btnore.setOnClickListener(new View.OnClickListener() {
    @Override
        public void onClick(View arg0) {
            // a random function call the methods. 
            Random = random of the methods(Met_one,     Met_two,Met_three,Met_four,Met_five)
        }   
    });

因此,当我按下按钮时,有时它会执行某种操作,有时会随机执行另一种操作。这有可能吗?

3 个答案:

答案 0 :(得分:6)

我认为最好的解决方案是使用带随机数的开关

这样的事情:

Random random = new Random();
int numberOfMethods = 4;

switch(random.nextInt(numberOfMethods)) {
     case 0: 
          method1();
          break;
     case 1: 
          method2();
          break;
     case 2: 
          method3();
          break;
     case 3: 
          method4();
          break;
     default: 
     method1();
}

答案 1 :(得分:1)

在java Math.random() * 5这将返回[0,5]范围内的值。当您按下Button时可以调用它。

onCreate

Button btn1=(Button)findViewById(R.id.button1);
btn1.setOnClickListener(btnOnClickListener);

Button.OnClickListener btnOnClickListener=new Button.OnClickListener()
    {

     @Override
     public void onClick(View v) {

          if(v==b1)
{
// your Math.random() * 5 function can invoke.
}

     }

答案 2 :(得分:0)

是的,这是可能的。如果你有固定数字的方法,概率将是1 / n。例如,5,概率为0.2。您可以使用这样的东西,每次单击按钮时都会重新生成rand:

if (rand < 0.2)
    Met_one()
else if (rand < 0.4)
    Met_two()
else if (rand < 0.6)
    Met_three()
... etc