我有这个代码:
openHandlera = new ViDBOpenHandler(this);
Runnable ru = new Runnable(){
public void run(){
int imageArrr[] = new int[2];
imageArrr[0] = R.drawable.crossone;
imageArrr[1] = R.drawable.blackone;
int n = (int)( Math.random()*2);
theIm.setImageResource(image[n]);
if(n == 0) {
Log.v("Result", "n is 0 now");
startTimea = System.currentTimeMillis();
final SoundGenerator task=new SoundGenerator();
task.keepPlaying(true);
task.setLoudness(audioLoudnessa);
task.execute(audioFrequencya);
new Handler().postDelayed(new Runnable() {
public void run() {
task.keepPlaying(false);
}
}, 1000);
}
new Handler().postDelayed(new Runnable() {
public void run() {
finish();
}
}, 30000);
Log.v("test", "is"+ startTimea);
theIm.postDelayed(this, 3000); //set to go off again in 3 seconds.
}
};
theIm.postDelayed(ru,1500);
在这段代码中,我想说如果我的图像等于imageArrr [1],则播放音乐一秒钟并将当前时间设置为开始时间。问题是我使用if(n == 0)。但它似乎并没有认识到这种实施方式。因为它不会去,如果我听不到声音,甚至不打印任何东西。任何人都可以指导我该怎么做?
答案 0 :(得分:1)
int n = (int)( Math.random()*2);
您随机生成n
的价值,并且您没有随时零
所以你的条件if(n == 0)
永远不会成真。而你没有得到适当的输出。
编辑:您可以像这样使用
if(n>2>
int image =imageArrr[0];
else
int image =imageArrr[1];