Dha*_*tri 6 android viewflipper
我有八个视图鳍状肢,有4个问题和4个答案.只要单击特定的viewflipper,就会显示那些问题和答案.我的问题是,当第一次点击任何viewflipper时,当时无事可做,并且在点击viewflipper之后,下一个单击的viewflipper值想要检查哪个是相同的(相等).(如果Question是5 + 3那么答案应该是8).
条件:
如果我是第一次点击Q然后下次点击有Q的另一个viewflipper没有必要检查操作,没有任何隐藏.
如果我是第一次点击Q然后下次A点击Q的textview的reive值并检查它是否正确,如果它是正确隐藏Q和A.
如果我是第一次点击A然后下次Q点击A的textview的反向值并检查它是否正确,如果它是正确隐藏Q和A.
如果我是第一次点击A然后下次另一个点击了a的viewflipper没有任何检查操作是必要的,没有任何隐藏.
如果我第一次点击Q然后下次点击有Q的相同viewflipper没有任何检查操作是必要的隐藏.
如果我是第一次点击A然后下次相同的viewflipper点击A没有任何检查操作是必要的隐藏.
那么,如何检查当前可点击的ViewFlipper和之前点击的ViewFlipper.我不知道如何检查问题.
我想,看看这个,我的问题就更清楚了.

编辑:12月16日
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.vf1:
try {
if (click) {
Message msg = new Message();
msg.what = 1;
delayHandler.sendMessageDelayed(msg, DELAYTIME);
vFilpper1.showNext();
} catch (Exception e) {
e.printStackTrace();
}
counter++;
break;
case R.id.vf2:
try {
Message msg = new Message();
msg.what = 2;
delayHandler.sendMessageDelayed(msg, DELAYTIME);
Log.d("viewfilpper", "VFlipper 2");
vFilpper2.showNext();
} catch (Exception e) {
e.printStackTrace();
}
break;
case R.id.vf3:
try {
Message msg = new Message();
msg.what = 3;
delayHandler.sendMessageDelayed(msg, DELAYTIME);
Log.d("viewfilpper", "VFlipper 3");
vFilpper3.showNext();
} catch (Exception e) {
e.printStackTrace();
}
break;
case R.id.vf4:
try {
Message msg = new Message();
msg.what = 4;
delayHandler.sendMessageDelayed(msg, DELAYTIME);
Log.d("viewfilpper", "VFlipper 4");
vFilpper4.showNext();
} catch (Exception e) {
e.printStackTrace();
}
break;
case R.id.vf5:
try {
Message msg = new Message();
msg.what = 5;
delayHandler.sendMessageDelayed(msg, DELAYTIME);
Log.d("viewfilpper", "VFlipper 5");
vFilpper5.showNext();
} catch (Exception e) {
e.printStackTrace();
}
break;
case R.id.vf7:
try {
Message msg = new Message();
msg.what = 7;
delayHandler.sendMessageDelayed(msg, DELAYTIME);
Log.d("viewfilpper", "VFlipper 7");
vFilpper7.showNext();
} catch (Exception e) {
e.printStackTrace();
}
break;
case R.id.vf8:
try {
Message msg = new Message();
msg.what = 8;
delayHandler.sendMessageDelayed(msg, DELAYTIME);
Log.d("viewfilpper", "VFlipper 8");
vFilpper8.showNext();
} catch (Exception e) {
e.printStackTrace();
}
break;
Run Code Online (Sandbox Code Playgroud)
问题是您的代码缺少先前选定的 ViewFlipper 的状态。我只能提供部分代码,因为我不知道您的其余代码。
在此处包含代码片段的类中,“public void onClick(View v) {”方法,您希望具有如下所示的内容:
public class Puzzle extends Activity{ //or whatever your class is called
private int previousFlipperID = -1; //this stores the previous state of the flipper that was selected
@Override
public void onClick(View v) {
//.... your code, but modified
// changes
if(previousFlipperID == -1){
//this is the VERY FIRST CLICK, using -1 to denotate that nothing was previously selected
previousFlipperID = v.getId();
return;
}
// end changes
switch (v.getId()) {
case R.id.vf1:
try {
if (click) {
// changes
switch(previousFlipperID){
case 0:
//do your logic here that you stated. note that at this point in the code
// you are at the point where your PREVIOUS flipper was the first flipper
// and your CURRENT flipper is also the first one, since v.getId() is R.id.vf1
break;
case 1: //some logic, but the CURRENT flipper is the first flipper, while PREVIOUS flipper was the second flipper
...
case 7: //the previous flipper selected was the last flipper
break;
}
// end changes
Message msg = new Message();
msg.what = 1;
delayHandler.sendMessageDelayed(msg, DELAYTIME);
vFilpper1.showNext();
} catch (Exception e) {
e.printStackTrace();
}
counter++;
break;
// changes
previousFliperID = v.getId(); //update the previous flipper
// end changes
}
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中,特别寻找“//changes”。你会看到我使用了一个整数来存储前一个脚蹼。然后我检查是否是第一次的方法是检查前一个脚蹼是否为-1。然后最后,确保将当前的脚蹼 ID 设置为前一个脚蹼 ID,以便下次更新“前一个”脚蹼 ID。
另外,请注意,我在那里有一个嵌套的 switch 语句,因为您需要一堆额外的检查来对发生的情况进行逻辑处理,具体取决于当前和之前的翻转器是什么。
答案是尽我所能,根据我所获悉的信息(以及我所能理解的),所以我希望这会有所帮助。
PS我这么说感到内疚,但如果我的答案是正确的,请检查我的答案,因为我实际上需要一些赏金点来提出赏金问题,但我认为我没有足够的积分。谢谢!和节日快乐
| 归档时间: |
|
| 查看次数: |
1274 次 |
| 最近记录: |