IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Eclipse erreur "NullPointerException"


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 103
    Points : 59
    Points
    59
    Par défaut Eclipse erreur "NullPointerException"
    Bonjour à tous,

    Cherchant désespérément à remplir une ListView avec le résultat d'une requête... J'ai cette erreur qui survient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    06-07 10:36:35.090: E/AndroidRuntime(652): FATAL EXCEPTION: main
    06-07 10:36:35.090: E/AndroidRuntime(652): java.lang.NullPointerException
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.widget.AbsListView.obtainView(AbsListView.java:2033)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.widget.ListView.measureHeightOfChildren(ListView.java:1244)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.widget.ListView.onMeasure(ListView.java:1155)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.view.View.measure(View.java:12603)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4677)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.widget.LinearLayout.measureVertical(LinearLayout.java:660)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.view.View.measure(View.java:12603)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4677)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.view.View.measure(View.java:12603)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.widget.LinearLayout.measureVertical(LinearLayout.java:812)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.view.View.measure(View.java:12603)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4677)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2072)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.view.View.measure(View.java:12603)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1044)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2418)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.os.Looper.loop(Looper.java:137)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at android.app.ActivityThread.main(ActivityThread.java:4340)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at java.lang.reflect.Method.invokeNative(Native Method)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at java.lang.reflect.Method.invoke(Method.java:511)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    06-07 10:36:35.090: E/AndroidRuntime(652): 	at dalvik.system.NativeStart.main(Native Method)
    Comment peut-on règler ce problème?
    Et si vous avez des conseils pour remplir la ListView, tout est bon à prendre

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    public class AffichageClientActivity extends MainActivity{
    	clientBDD cliBDD= new clientBDD(this);
    	ListView clientListe;
     
        client cli = new client("","","","","","","",0,0);
    	protected void onCreate(Bundle saveInstanceBundle){
    		super.onCreate(saveInstanceBundle);
    		setContentView(R.layout.listingclient);
    		clientListe = (ListView)findViewById(R.id.list);
     
    		//récupération de la valeur de l'EditText
    		Bundle objetbundle= this.getIntent().getExtras();
    		String nomclient=objetbundle.getString("nomclient");
     
    		cliBDD.open();
    	    cli=cliBDD.getClientwithNom(nomclient);
    		if (cliBDD != null){
    			//affichage du ou des client(s)
    			clientListe = (ListView)findViewById(R.id.list);
    			ArrayAdapter<client> adapter = new ArrayAdapter<client>(this,android.R.layout.simple_list_item_1);
    			// SimpleCursorAdapter= new SimpleCursorAdapter(context, R.layout.listingclient, new String[]{cliBDD.nom, cliBDD.prenom, cliBDD.adresse, cliBDD.cp, cliBDD.ville, cliBDD.mail, cliBDD.tel, cliBDD.nbpizzatotal, cliBDD.nbpizzaencours}, new int[]{R.id.nom,R.id.prenom,R.id.adresse,R.id.cp,R.id.ville,R.id.mail,R.id.tel,R.id.nbpizzaencours,R.id.nbpizzatotal});
    			adapter.add(cli);
    			clientListe.setAdapter(adapter);
     
     
     
     
     
    		}
    		else
    		{
    			Toast.makeText(this, "Ce client n'est pas enregistré dans la base, vérifier l'orthographe ou bien ajouter un nouveau client.", Toast.LENGTH_LONG).show();
    		}
    		}
     
     
    	}
    Et les fonctions utilisées dans ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    	public client getClientwithNom(String nom){
    		Cursor c = bdd.query(TABLE_CLIENT, new String[] {_ID, COL_NOM, COL_PRENOM, COL_ADRESSE, COL_CP, COL_VILLE, COL_MAIL, COL_TEL, COL_PIZZAENCOURS, COL_PIZZATOTAL}, COL_NOM + " LIKE \"" + nom +"\"", null, null, null, null);
    		return cursorToClient(c);
    	}
    	public client cursorToClient(Cursor c){
    		if(c.getCount()== 0)
    		{
    			return null;
    		}
    		c.moveToFirst();
    		client cli = new client();
    		cli.setId(c.getInt(NUM_COL_ID));
    		cli.setNom(c.getString(NUM_COL_NOM));
    		cli.setPrenom(c.getString(NUM_COL_PRENOM));
    		cli.setAdresse(c.getString(NUM_COL_ADRESSE));
    		cli.setCp(c.getString(NUM_COL_CP));
    		cli.setVille(c.getString(NUM_COL_VILLE));
    		cli.setMail(c.getString(NUM_COL_MAIL));
    		cli.setTel(c.getString(NUM_COL_TEL));
    		cli.setNbpizzaencours(c.getInt(NUM_COL_PIZZAENCOURS));
    		cli.setNbpizzatotal(c.getInt(NUM_COL_PIZZATOTAL));
    		c.close();
    		return cli;
     
    		}
    Merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2013
    Messages : 70
    Points : 113
    Points
    113
    Par défaut
    petit problème dans la construction de ton ArrayAdapter<?>

    regarde les différents constructeur possible
    http://developer.android.com/referen...ayAdapter.html

    un SimpleAdapter serait pas mieux?

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    Finalement, j'ai trouvé!! Merci quand même
    Le code ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    public class AffichageClientActivity extends MainActivity /*implements onItemClickListener*/{
    	clientBDD cliBDD= new clientBDD(this);
    	ListView clientListe;
    	client cli = new client("","","","","","","",0,0);
    	private ArrayAdapter<String> ClientAdapter =null;
    	protected void onCreate(Bundle saveInstanceBundle){
    		super.onCreate(saveInstanceBundle);
    		setContentView(R.layout.listingclient);
    		clientListe = (ListView)findViewById(R.id.list);
     
     
    		//récupération de la valeur de l'EditText
    		Bundle objetbundle= this.getIntent().getExtras();
    		String nomclient=objetbundle.getString("nomclient");
    		clientListe = (ListView)findViewById(R.id.list);
    		ClientAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
    		clientListe.setAdapter(ClientAdapter);
    		cliBDD.open();
    		cli = cliBDD.getClientwithNom(nomclient);
    		if (cli != null){
    		//affichage du ou des client(s)
     
    		ClientAdapter.add(cli.getNom()+ "  " + cli.getPrenom());
    		ClientAdapter.setNotifyOnChange(true);
     
     
    		}
    		else
    		{
    			Toast.makeText(this, "Ce client n'est pas enregistré dans la base, vérifier l'orthographe ou bien ajouter un nouveau client.", Toast.LENGTH_LONG).show();
    		}
    		//clientListe.setOnItemClickListener(new onItemClickListener (){
    		//public void OnItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){
     
    		//}
    		//}
    		cliBDD.close();
    		}
     
    		public String toString(){
    			String MonStringClient = null;
    			MonStringClient = cli.getNom() + cli.getPrenom();
    			return MonStringClient;
    		}
     
    	}
    J'arrive à afficher dans ma listview
    Maintenant j'ai plus qu'à intéragir avec mais cependant, j'ai l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListView.onItemClickListener cannot be resolved to a type
    ..
    Tu saurais pas pourquoi par hasard?

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    un SimpleAdapter serait pas mieux?
    Et concernant cela, je sais pas ^^' C'est la première fois que j'utilise un adapter, et on m'a conseillé celui-ci..

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2013
    Messages : 70
    Points : 113
    Points
    113
    Par défaut
    autant pour moi, erreur de ma part pour le arrayAdapter.

    Par contre pour le listener quelqu'un à eu la même erreur que toi aujourd'hui :/

  6. #6
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par Pepito39 Voir le message
    Maintenant j'ai plus qu'à intéragir avec mais cependant, j'ai l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListView.onItemClickListener cannot be resolved to a type
    ..
    Tu saurais pas pourquoi par hasard?
    C'est un O majuscule... forcément, comme tous les types en Java...
    Contrairement à la fonction ("o" minuscule) comme toutes les fonctions en Java.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 103
    Points : 59
    Points
    59
    Par défaut
    En effet, merci bien!

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo