web-dev-qa-db-fra.com

Comment connecter une vue de présentation à une activité

Dans ma vue principale, j'ai:

public class PlayersActivity extends Activity {
    ViewFlipper flipper;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.playercontainer);
        flipper = (ViewFlipper) findViewById(R.id.flipper);
    }
}

avec cette vue:

<ViewFlipper xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/flipper"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent">
    <include Android:id="@+id/first"  layout="@layout/first" />
    <include Android:id="@+id/second"  layout="@layout/playerdetailsview" />
</ViewFlipper>

Elle affiche correctement la première vue, mais je souhaite qu'elle soit connectée à une classe Java. J'ai donc créé une classe FirstActivity dans laquelle je peux contrôler tous mes composants dans la première vue. Classe Java?

26
Andy Jacobs

Supposons que votre nouveau fichier XML soit foo.xml:

  1. Placez le fichier foo.xml dans votre répertoire res/layout.
  2. Dans votre nouvelle classe, utilisez setContentView(R.layout.foo);
  3. Spécifiez votre nouvelle classe dans votre fichier manifest .

Voir aussi la rubrique sur déclarer un modèle .

46
RickNotFred

1) Créez un fichier XML (disons foo.xml).
2) Mettez foo.xml dans le répertoire res/layout.
3) Éditez foo.xml et mettez du code de mise en page Android et enregistrez-le. par exemple.,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
              Android:layout_width="fill_parent" 
              Android:layout_height="fill_parent" 
              Android:orientation="vertical" >
    <ViewFlipper Android:id="@+id/viewFlipper1" 
                 Android:layout_width="match_parent" 
                 Android:layout_height="wrap_content"></ViewFlipper>
</LinearLayout>

4) Dans votre nouvelle classe d'activité 

setContentView(R.layout.foo);

Pour créer une activité voir cette réponse

Je suppose que le problème avec votre fichier xml est que vous n'aviez pas spécifié de mise en page pour l'activité.

6
Mohammad Faisal

Pas si difficile de relier 2 mises en page, il suffit de:

@Override
    public void onClick(View args0) {
    setContentView(R.layout.aardelayout);
}
3
CaptainStony

Changez le nom de FirstActivity en firstactivity . Layout n'accepte pas les majuscules, j'ai été confronté au même problème.

0
user2046604