我正在尝试开发一个小游戏。
我有一个ViewFlipper,其中包含50个图片(4个图片的随机频率)在ImageViews中。然后我有4个按钮,上面有相同的4张图片,这些图片可以出现在ViewFlipper中。
任务是当正确的图片出现时点击正确的按钮。 (当图片1出现时,必须按下按钮1,依此类推)
我的问题是我不知道如何获取显示的ImageView id。
flipper.getCurrentView().getId()
返回值为“-1”的Id,但我想要“R.drawable.pic1”的Id。
到目前为止,我的代码如下:
我的加载器方法:
protected void loadPicturesIntoFlipper() {
Random generator = new Random();
pictures = new ArrayList();
for(int i = 0; i < 50;i++){
int number = generator.nextInt(4) + 1;
if(number == 1){
pic = R.drawable.pic1;
}
if(number == 2){
pic = R.drawable.pic2;
}
if(number == 3){
pic = R.drawable.pic3;
}
if(number == 4){
pic = R.drawable.pic4;
}
pictures.add(pic);
}
for(int i=0;i<pictures.size();i++)
{
setFlipperImage((Integer) pictures.get(i));
}
}
我的插入方法:
private void setFlipperImage(int res) {
image = new ImageView(getApplicationContext());
image.setBackgroundResource(res);
flipper.addView(image);
}
我的检查方法:
protected void check(int number, int id) {
int code = 0;;
if(number == 1){
code = R.drawable.button_tip_finder;
}
if(number == 2){
code = R.drawable.button_about_us;
}
if(number == 3){
code = R.drawable.button_power_calculator;
}
if(number == 4){
code = R.drawable.button_powerpedia;
}
if(code == id){
test.setText(""+id);
}
else{
test.setText(""+id);
}
}
我称之为:
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
check(1,flipper.getCurrentView().getId());
flipper.showNext();
}
});
R.drawable.pic1
是一个 drawable 的资源 ID,而.getId()
则返回视图的 ID。 - Simon Forsbergif
:O ??? 你的else
呢?请使用带有else
的if
来提高效率... - M-Wajeeh