我有一个问题,我真的不知道是否有可能意识到这一点。情况就是这样;我有五种方法和一个按钮。实际上,如果我想调用一个方法点击我写的按钮:
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)
}
});
因此,当我按下按钮时,有时它会执行某种操作,有时会随机执行另一种操作。这有可能吗?
答案 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