Aller au contenu

Apercu du layout foire des que je mets une Listview


Profete162

Recommended Posts

Salut.

Mes petits programmes fonctionnent tres bien, il y a juste que je retravaille l'interface graphique pour le moment, et des que mon layout contient une listview, je ne peux plus voir l'apercu dans Eclipse! Ma fenetre est grisée avec un message d'erreur! (NullpointerException)

Pourtant le code de ma listview fonctionne tres bien dans l'appli sur le téléphone, le stress ne vient pas de là.


1) avez-vous tous ce problème et comprenez vous de quoi je parle?

2) avez-vous une solution?

Modifié par Profete162
Lien vers le commentaire
Partager sur d’autres sites

Le système "Interface Builder" Android utilise tout simplement le même code pour effectuer la "preview" que celui qui est exécuté sur les terminaux. Le problème c'est que parfois certains widgets utilisent dans des méthodes comme onSizeChanged ou onDraw, des attributs qui doivent avoir était définis auparavant (par exemple un Adapter).

Dans ton cas, cela me parait bizarre car la ListView a été développée pour pouvoir s'utiliser dans le builder même si l'Adapter n'a pas été défini ... la liste n'affiche alors aucun élément mais prend bien la bonne taille. Je ne saurais donc dire pourquoi ce problème mais j'espère t'avoir expliqué pourquoi il est possible d'avoir des Exceptions dans le builder.

Dernier petit point, lorsqu'on développe ses propres widgets, il est possible d'utiliser la méthode isInEditMode() pour contourner le problème :)

Lien vers le commentaire
Partager sur d’autres sites

Merci pour l'info, Cyril, je me doutais que ca allait être quelquechose du genre.

Mais je me dis qu'il doit y avoir une mise en forme de la listview qui doit fonctionner, non?

Je vais traduire pour Popol:

Mon programme et mes layouts contenant une listview fonctionnent à 100 pourcents dans mon appli.

Quand je veux regarder un apercu de mon layout dans Eclipse, je clique habituellement sous l'onglet "Layout"

20091225-g13je7jar72nydn7fu7tdhy82w.preview.jpg

Click for full size - Uploaded with plasq's Skitch

et des qu'il y a un listview, mon écran devient ceci:

20091225-px48y6csm6cdnfywm4fm345aj5.preview.jpg

Click for full size - Uploaded with plasq's Skitch

Est-ce que c'est clair ou pas???

Modifié par Profete162
Lien vers le commentaire
Partager sur d’autres sites

<?xml version="1.0" encoding="utf-8"?>
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical"
   >
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       />
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:text="@string/l_empty"
       android:gravity="center"
       />

la t'as le layout, et non je vais pas partager le code :)

c'est une simple ListActivity avec dedans l'adpater :

public class main extends ListActivity {

   @Override
   public void onCreate(Bundle savedInstanceState) {
       setListAdapter(new Adapter());
   }

   private static class Adapter extends BaseAdapter {

       public Adapter() {
       }

       public int getCount() {
       }

       public Object getItem(final int position) {
       }

       public long getItemId(final int position) {
       }

       public View getView(final int position, View convertView, final ViewGroup parent) {
       }

   }
}

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...