6

I Have eight View flipper which have 4 Question and 4 Answers. Which is display those Question and Answers, whenever that particular viewflipper is clicked. My problem is, When first time any viewflipper is clicked, at that time nothing to do, and after on viewflipper is clicked the next clicked viewflipper value want to check which is same(equal) or not.(If Question is 5+3 then answers should be 8).

Condition:

  1. if I am first time Q is clicked then next time another viewflipper which have Q is clicked nothing check operation is necessary and nothing hide .

  2. if I am first time Q is clicked then next time A is clicked retrive value from textview of Q and check is it right or not, if it is right hide both Q and A.

  3. if I am first time A is clicked then next timeQ is clicked retrive value from textview of A and check is it right or not, if it is right hide both Q and A.

  4. if I am first time A is clicked then next time another viewflipper which haveA is clicked nothing check operation is necessary nothing hide.

  5. if I am first time Q is clicked then next time same viewflipper which have Q is clicked nothing check operation is necessary nothing hide.

  6. if I am first time A is clicked then next time same viewflipper which have A is clicked nothing check operation is necessary nothing hide.

So, How to check Current clickable ViewFlipper and Previous clicked ViewFlipper. I did not get any idea how to check the problem.

Look at this, I think, my problem is more clear.

enter image description here

Edited: Dec 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;
Horrorgoogle
  • 7,858
  • 11
  • 48
  • 81
  • Give them Ids and then store the Id... Really very simple. – Warpzit Dec 15 '11 at 06:42
  • 2
    I already give them all viewflipper respecive ids, I am click now viewflipper7, but previous clickable viewflipper3 is. so how to get viewflipper3 value and how to compair to viewflipper7 vlaue, each viewflipper has one textview where value stored. – Horrorgoogle Dec 15 '11 at 06:49
  • Do it in code plz, so when you switch view you set a value at field to last view = 1, then next time you make a new view you read it before setting it again... pretty straight forward – Warpzit Dec 15 '11 at 07:50
  • did my answer solve your question? if so, please please please close it before the bounty time ends (4 hours). i think you lose the 100 bounty points regardless of if you select an answer, so might as well award it to one of the two answers? :D – David T. Dec 25 '11 at 00:47

2 Answers2

3

The problem is that your code is missing the state of the PREVIOUS selected ViewFlipper. I can only provide partial code as i don't know the rest of your code.

in the class which has your code snippet on here, the "public void onClick(View v) {" method, you want to have something like this:

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

    }
}

in my code, look for "//changes" especially. you'll see that i used an integer to store the previous flipper. and then the way i check if it's the FIRST time, is to check if the previous flipper was -1 or not. then at the end, make sure you set the current flipper id as the previous flipper id to update the "previous" flipper id for the next time.

also, note that i had a nested switch statement in there, because you need a bunch of extra checks to do your logic for what happens, depending on what the current and previous flippers are.

the answer is to the best of my abilities on information i've been told (and also to the best of my understanding), so i hope this helps.

P.S. i feel guilty say this, but if my answer was correct, please please please check my answer, because i actually need some bounty points to ask bounty questions but i don't think i have enough points. thanks! and happy holidays

David T.
  • 22,301
  • 23
  • 71
  • 123
0

Okay you have no code that shows how you switch between your views but here it goes: When you switch in code in your on click or whatever you set a membervariable to last = currentselected and currentselected = the id of the selected viewflipper. Really dead simple. Oh and first time you make a check to see if its null. If you want me to be more precise supply code that shows how you switch between your views.

Warpzit
  • 27,966
  • 19
  • 103
  • 155