2011-10-14 5 views
0

Est-il possible d'utiliser ViewFlipper entre deux activités, et au même envoyer les paramètres entre eux? Comme sur la première vue, deux boutons sont utilisés, en fonction de quel bouton, il doit être commuté sur la vue de dessus (en utilisant ViewFlipper) et en utilisant une logique différente en fonction de la touche enfoncée.Android ViewFlipper Avec l'intention

Merci d'avance.

Répondre

1

Je voudrais juste créer deux classes et les faire gonfler la disposition désirée. Dans chaque classe, vous pourriez avoir la logique différente. Votre activité ne contiendra alors que ViewFlipper et la logique pour passer à la suivante/précédente.

public class ViewFlipperActivity extends Activity { 
    public void onCreate(Bundle savedInstanceState) { 
     super(savedInstanceState); 
     setContentView(R.layout.my_viewFlipper_lauout); 

     flipper = (ViewFlipper) findViewById(R.id.viewFlipper); 

     FirstView first = new FirstView(this, flipper); 
     flipper.addView(first); 

     SecondView second = new SecondView(this, flipper); 
     flipper.addView(second); 

     first.setDataPasser(second); 
     second.setDataPasser(first); 
    } 
} 

Première Voir

public class FirstView extends LinearLayout implements DataPasser { 
    private ViewFlipper flipper; 
    private DataPasser dataPasser; 

    public FirstView(Context context, ViewFlipper flipper) { 
     super(context); 
     inflate(...); 
     this.flipper = flipper; 

     // Do other stuff. 
    } 

    protected void setDataPasser(DataPasser dataPasser) { 
    this.dataPasser = dataPasser; 
    } 

    //Implement the other methods required by your interface. 
} 

Seconde vue

public class SecondView extends LinearLayout { 
    private ViewFlipper flipper; 
    private DataPasser dataPasser; 

    public SecondView(Context context, ViewFlipper flipper) { 
     super(context); 
     inflate(...); 
     this.flipper = flipper; 

     // Do other stuff. 
    } 

    protected void setDataPasser(DataPasser dataPasser) { 
    this.dataPasser = dataPasser; 
    } 

    //Implement the other methods required by your interface. 
} 

Puis, quand vous devez changer d'image lorsque de chaque FirstView ou SecondView, vous appelez flipper.showNext() ou flipper.showPrevious()

EDIT

Pour transmettre des données entre les deux points de vue, vous pouvez mettre en œuvre des méthodes de la classe d'activité à cet effet, puis laisser les deux points de vue tiennent une référence à l'activité. Une autre alternative est de créer une interface que les deux vues doivent mettre en œuvre:

interface DataPasser { 
    void setDataPasser(DataPasser dataPasser); //To be able to add each view to the other. 
    void passData(Data data); //Or other methods needed to pass the data. 
} 
+0

Où puis-je transmettre un paramètre dans cet exemple? – MDP

+0

J'ai modifié la réponse ci-dessus pour répondre plus précisément à vos besoins. – kaspermoerch

+0

À quoi ressemblerait viewFlipper de R.id.viewFlipper? –

0

nom doit dire you.You peut basculer entre deux points de vue entre deux pas intents.So mieux essayer de basculer entre les deux points de vue plutôt que deux activités.

+0

puis comment puis-je passer paramètre avec vue flipper. – MDP

+0

Dans ce cas, vous pouvez utiliser votre propre logique. Pas d'autre choix je pense. –

+0

avez-vous une idée de ce problème? – MDP