编辑:我将setChoice(i++)
更改为setChoice(++i)
。它有效。
我想制作拖放活动,将三个TextView加载到三个ImageViews,如下所示:http://i.imgur.com/dsphSFO.png。我想制作5个级别的文本更改,图片不会。
所以我的活动有一个主方法(onCreate
),onLongClickListener
,onDragListener
,一个设置三个TextViews(setChoice(int i)
)的方法,以及一个方法检查TextViews的值(checkAll
)。
在public class
中,我声明了一个2d字符串[],choice
和一个int i
,以及TextViews和ImageViews。
int i
就是这个问题的内容。在onCreate
我初始化所有内容并且:
i = 0;
setChoice(i);
setChoice
检查i
的值,如果它小于5,它会随机地将TextViews与1,2,3匹配,并设置来自2d []的文本:
int num = (int)(Math.random()*3);
tvOne.setText(choice[i][num]);
int num2 = (int)(Math.random()*3);
if(!(num == num2)){
tvTwo.setText(choice[i][num2]);
}else{
do{
num2 = (int)(Math.random()*3);
}while(num == num2);
tvTwo.setText(choice[i][num2]);
}
然后return
。
此时,TextViews填充choice[0][]
,用户应将“Truck”,“Helicopter”和“Boat”等字拖到图像上。每个onDrag
都将TextView字符串与choice[][]
中的字符串进行比较,我得到这样的结果:
String choiceOne = choice[i][0];
如果字符串匹配,则TextView文本将更改为“更正”。每次将TextView更改为“更正”时,我都会调用checkAll
。
checkAll
将所有三个TextView与字符串“Correct”进行比较。如果不是全部匹配,则返回,否则我想调用setChoice(i++)
并从choice[][]
加载下一行(即choice[1][]
)。
我想我从i
传来的checkAll()
(应该高一个)不会增加,因为TextViews再次被chioce[0][]
填充。
我做错了什么?