Fluckysan Posté(e) 5 juin 2009 Share Posté(e) 5 juin 2009 Bonjour :D Je me suis mis à dév une chtite appli toute simple pour apprendre sur le SDK Androïd Mais je bute sur un truc super simple : le switch entre 2 Views Voici le code de la première View : Le XML : <?xml version="1.0" encoding="utf-8"?> android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> android:id="@id/android:list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#00FF00" android:layout_weight="1" android:drawSelectorOnTop="false"> android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> android:text="row one" android:textSize="15pt" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"/> Et le Java : package com.fnorindr.android.pii; import android.app.ListActivity; import android.widget.ArrayAdapter; import android.os.Bundle; import android.util.Log; import android.view.*; import android.widget.AdapterView; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import android.view.View.OnClickListener; public class entry extends ListActivity { static final String[] COUNTRIES = new String[] { "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra" }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, COUNTRIES)); getListView().setTextFilterEnabled(true); setContentView(R.layout.entry); } public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_bottom, menu); return true; } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.create: this.setContentView(R.layout.second); return true; } return false; } } Voici celui de la seconde View : Le XML : <?xml version="1.0" encoding="utf-8"?> android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="Yep"/> Et le Java : package com.fnorindr.android.pii; import android.os.Bundle; import android.view.*; import android.app.Activity; public class second extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); } public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_bottom, menu); return true; } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.create: this.setContentView(R.layout.entry); return true; } return false; } } Rien de plus simple ! Et pourtant ça bug lorsque je click sur le menu "Create" ... Il y a un truc que j'ai pô du comprendre mais je ne vois pô quoi ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 5 juin 2009 Auteur Share Posté(e) 5 juin 2009 Bon j'ai trouvé la solution :o Et j'avais en effet mal compris ! Je laisse le Topic et je corrige parce que même si j'ai un peu honte de la faute, ça permettra à tous les débutants de pô faire comme moip :p Donc faites attention à ne pô confondre View et Activity (et de ne pô trop vous fier au tuto qui traîne sur le net ...) Il ne faut en fait pô changer le layout si on veut changer d'Activity donc ces lignes sont fausses : case R.id.create: this.setContentView(R.layout.second); return true; Il faut commencer par inclure la 2ème Activity dans le AndroidManifex.xml : android:label="@string/app_name"> Ensuite il suffit d'appeler la 2ème Activity par un Intent (Je ne sais pô s'il existe une autre façon de faire :s) : case R.id.create: Intent goIntent = new Intent(this, second.class); this.startActivity(goIntent); return true; Vous pouvez donc appeler l'Activity que vous voulez de cette façon :) Je continuerais de vous faire part de mes erreurs dès que je bloque, ne vous inquiétez pô XD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.