我有一个问题,我真的不知道是否可能意识到这一点。情况就是这样,我有五个方法和一个按钮。实际上,如果我想调用一个方法,点击我写的按钮:
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)
}
});
所以用这种方式,当我点击按钮时,它有时会做一种动作,有时会随机地执行另一种动作。有可能吗?
发布于 2014-03-06 09:24:17
我认为最好的解决办法是使用带随机数的开关。
就像这样:
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();
}
发布于 2014-03-06 09:41:09
在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.
}
}
发布于 2014-03-06 09:20:45
是的这是可能的。如果你有固定数的方法,概率是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
https://stackoverflow.com/questions/22231401
复制