2011-12-15 9 views
6

Tengo ocho Aletas de visualización que tienen 4 preguntas y 4 respuestas. Que muestra esas preguntas y respuestas, cada vez que se hace clic en ese viewflipper particular. Mi problema es que la primera vez que se hace clic en viewflipper, en ese momento no hay nada que hacer, y luego se hace clic en viewflipper, el siguiente valor de viewflipper seleccionado quiere comprobar que es igual (igual) o no (si Question es 5 + 3) las respuestas deben ser 8).cómo verificar el valor anterior en android of viewflipper

Estado:

  1. si estoy Q primera vez que se hace clic a continuación, la próxima vez que otra viewflipper que tienen Q se hace clic en la operación nada cheque es necesario y nada ocultar.

  2. si estoy Q primera vez que se hace clic a continuación, la próxima vez que se hace clic en un valor retrive de Vista de Texto de Q y comprobar que es correcto o no, si es ocultar la derecha tanto Q y A.

  3. si Soy la primera vez que A hace clic en la próxima vez que se hace clic en Q recupera el valor de la vista de texto de A y verifica si es correcto o no, si es correcto oculta Q y A.

  4. si soy la primera vez que hago clic en A luego, la próxima vez que se haga clic en otro viewflipper que tenga A, no es necesario nada verificar la operación, nada se esconde.

  5. si soy la primera vez que se hace clic en Q, la próxima vez que se hace clic en el mismo viewflipper, nada es necesario.

  6. si soy la primera vez que se hace clic en A y la próxima vez que se hace clic en el mismo viewflipper que tiene A, no es necesario nada.

Así que, ¿Cómo comprobar actual ViewFlipper hacer clic y clic ViewFlipper anterior. No tuve ni idea de cómo verificar el problema.

Mire esto, creo, mi problema es más claro.

enter image description here

Editado el 16 diciembre

@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; 
+0

Dales Ids y luego almacenar el ID ... realmente muy simple. – Warpzit

+2

ya darles todo viewflipper identificadores de respecive, soy clic ahora viewflipper7, pero se puede hacer clic viewflipper3 anterior es. Entonces, ¿cómo obtener el valor viewflipper3 y cómo compair a viewflipper7 vlaue, cada uno tiene viewflipper TextView donde el valor almacenado. –

+0

Hazlo en código por favor, así que cuando cambias de vista estableces un valor en el campo a la última vista = 1, entonces la próxima vez que haces una nueva vista la lees antes de volver a configurarla ... bastante sencillo – Warpzit

Respuesta

3

El problema es que a su código le falta el estado del PREVIOUS ViewFlipper seleccionado. Solo puedo proporcionar un código parcial ya que no conozco el resto de tu código.

en la clase que tiene el fragmento de código de aquí, el "public void onClick (Ver v) {" método, que desea tener algo como esto:

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 

    } 
} 

en mi código, busque " // cambia "especialmente". Verás que utilicé un número entero para almacenar la aleta anterior. y luego la forma en que verifico si es la PRIMERA vez, es verificar si la aleta anterior era -1 o no. luego, al final, asegúrese de que establece la corriente Identificación del aleta que la anterior Identificación aleta para actualizar la "anterior" Identificación aleta para la próxima vez.

Además, tenga en cuenta que tenía una declaración de cambio anidada allí, porque necesita un montón de controles adicionales para hacer su lógica para lo que sucede, dependiendo de cuáles son las aletas actuales y anteriores.

la respuesta es a lo mejor de mis habilidades en la información que me han dicho (y también a lo mejor de mi conocimiento), así que espero que esto ayude.

P.S. Me siento culpable decir esto, pero si mi respuesta fue correcta, por favor revisen mi respuesta, porque realmente necesito algunos puntos de bonificación para hacer preguntas sobre recompensas, pero no creo que tenga suficientes puntos. ¡Gracias! y felices fiestas

0

Está bien que no tienen código que muestra cómo se cambia entre sus puntos de vista, pero aquí va: Cuando se cambia de código en su al hacer clic o lo que establezca una variable de miembro como last = currenteleccionado y currenteleccionado = el id del viewflipper seleccionado. Realmente muerto simple. Ah, y la primera vez que haces un cheque para ver si es nulo. Si quiere que sea un código de suministro más preciso que muestre cómo cambia entre sus vistas.

+0

Mira mi pregunta que está editada. –

Cuestiones relacionadas