Aller au contenu

[Résolu]Ressources textuelles pour un listView


Recommended Posts

Posté(e) (modifié)

Je n'arrive pas à intégrer des strings du strings.xml dans un listView.

Si le texte est hardcodé, ça passe nickel.

Mais si je fais un getString(R.string.nomdustring) ça crash :(

 String act2 = getString(R.string.activity_2);
   final String[] ListeActivites = new String[] {
       act2,"Activité 3"
   };

Modifié par dekans
Posté(e) (modifié)

ça serait pas plutot String[] act2 = getString(R.string.activity_2);

ou un gestrings ou getstringarray si ça existe

Modifié par popolbx
Posté(e)

t as essayé avec new String[] { new String(act2),"xxx"};

ou pire un

ArrayList toto = new ArrayList();

toto.add(act2);

toto.add("xxx");

String[] s = toto.toArray[];

Posté(e)

J'ai essayé les 2 sans succès oui :(

Mais j'ai trouvé la source du problème : c'est le projet qui est foireux.

Je ne sais pas pourquoi.

Quand je refais ça dans un autre projet, ça passe très bien.

Posté(e)

en fait c'est mon setListAdapter() qui doit être mauvais, c'est lui qui cause mes problème avec les strings.

J'ai pris celui du helloListView dans le SDK, mais je vais chercher avec un autre

Posté(e)

Voila le code, j'avais regrpis ça du helloListViex mais il va falloir que je regarde le fonctionnement des listAdapter, car c'est ça qui fout le bordel je crois

public class mainActivity extends ListActivity {
   /** Called when the activity is first created. */
   public static final int NewActivity_ID = Menu.FIRST;
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       setListAdapter(new ArrayAdapter(mainActivity.this,
       android.R.layout.simple_list_item_1, ListeActivites));
       getListView().setTextFilterEnabled(true);
       getListView().setOnItemClickListener(listener);

   }
//this.getResources().getString(R.string.activity_2) ,this.getResources().getString(R.string.activity_3)
   public String[] ListeActivites = new String[]{
           getString(R.string.activity_2),"Activité 3"
   };
AdapterView.OnItemClickListener listener = new OnItemClickListener() {
      public void onItemClick(AdapterView parent, View v, int position, long id) {
           switch (position){
           case 0 : startActivity(new Intent(mainActivity.this, SecondActivity.class));break;
           case 1 : startActivity(new Intent(mainActivity.this, ThirdActivity.class));
           }
       }
       }; 
}

Posté(e)

Déjà je ne comprend pas comment

getString(R.string.activity_2)

peut passer à la compilation ... la méthode getString fait partie de la classe Resources or là tu l'appelle sur this (Activity).

Pense aussi à respecter la syntaxe généralement utilisée en Java ;) (pas mainActivity mais MainActivity et non pas ListeActivites mais listeActivites)

Posté(e)

le getString(..) tout seul est employé dans pas mal d'exmemple de code de la doc du SDK.

Pour la syntaxe Java, j'ai refait le projet 2-3 fois donc au final je m'emmèle un peu :p

Et comme c'est juste une appli d'essai je ne fais pas attention.

Avec getBaseContext().getResources().getString(R.string.activity_2)

ca ne fonctionne pas mieux :(

Posté(e)

bah ça fait exactement la même chose :(

public class mainActivity extends ListActivity {
   /** Called when the activity is first created. */
   public static final int NewActivity_ID = Menu.FIRST;
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setListAdapter(new ArrayAdapter(mainActivity.this,
       android.R.layout.simple_list_item_1, ListeActivites));
       getListView().setTextFilterEnabled(true);
       getListView().setOnItemClickListener(listener);
   }

   public String[] ListeActivites = new String[]{
           getResources().getString(R.string.activity_2),"Lancer Activité trois"
   };
AdapterView.OnItemClickListener listener = new OnItemClickListener() {
      public void onItemClick(AdapterView parent, View v, int position, long id) {
           switch (position){
           case 0 : startActivity(new Intent(mainActivity.this, SecondActivity.class));break;
           case 1 : startActivity(new Intent(mainActivity.this, ThirdActivity.class));
           }
       }
       }; 
}

Posté(e)

J'ai compris le problème en fait ... c'est tout bête : c'est que ta liste ListeActivites ne peut pas avoir de "getResources()" vu que tu la définie au niveau classe (c'est à dire quand le this est nul) ! Si tu mets la déclaration de ta ListeActivites dans le onCreate ce sera bon. Voilà le code avec la bonne syntaxe (et le bon nommage) :

package com.cyrilmottier.android.testforum;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;

public class MainActivity extends ListActivity {

   private final AdapterView.OnItemClickListener mListener = new AdapterView.OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
           switch (position) {
           case 0:
               startActivity(new Intent(MainActivity.this, SecondActivity.class));
               break;
           case 1:
               startActivity(new Intent(MainActivity.this, ThirdActivity.class));
               break;
           }
       }
   };

   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       String[] listeActivites = new String[] {
               getResources().getString(R.string.activity_2),
               "Lancer Activité trois" };

       setListAdapter(new ArrayAdapter(MainActivity.this,
               android.R.layout.simple_list_item_1, listeActivites));
       getListView().setTextFilterEnabled(true);
       getListView().setOnItemClickListener(mListener);
   }
}

Posté(e)

[HS]Ha mais je me disais bien que j'avais déjà vus ton nom quelque part !

C'est un des permiers blog / tutos que j'ai lu / fait quand j'ai commencé l'aventure Android :D

Bon blog en passant, merchi à toi ;)[/HS]

Posté(e)
[HS]Ha mais je me disais bien que j'avais déjà vus ton nom quelque part !

C'est un des permiers blog / tutos que j'ai lu / fait quand j'ai commencé l'aventure Android :D

Bon blog en passant, merchi à toi ;)[/HS]

Merci ... ça fait plaisir de voir que j'initie des développeurs à Android :)

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...