Aller au contenu

Probleme avec ListActivity et SharedPreference [Resolu]


DevAndroid

Recommended Posts

Salut,

Voila, j'ai un probleme :

package com.enigme.myclasses;

import android.app.Activity;

import android.app.ListActivity;

import android.content.Context;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.preference.PreferenceManager;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.TableLayout;

import android.widget.Toast;

public class Profil extends ListActivity {

String nom = "Android";

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setListAdapter(new ArrayAdapter(this,

android.R.layout.simple_list_item_1, mStrings));

getListView().setTextFilterEnabled(true);}

private String[] mStrings = {nom};

Ce code source marche parfaitement mais celui ci plante :

package com.enigme.myclasses;

import android.app.Activity;

import android.app.ListActivity;

import android.content.Context;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.preference.PreferenceManager;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.TableLayout;

import android.widget.Toast;

public class Profil extends ListActivity {

SharedPreferences util = PreferenceManager.getDefaultSharedPreferences(this);

String nom = util.getString("nom", null);

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setListAdapter(new ArrayAdapter(this,

android.R.layout.simple_list_item_1, mStrings));

getListView().setTextFilterEnabled(true);}

private String[] mStrings = {nom};

Pourquoi?? J'utilise juste SharedPreference a la place d'une variable String.

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

Desoler mais la modif ne change rien

Jai pourtant effectuer ta modification

package com.enigme.myclasses;

import android.app.Activity;

import android.app.ListActivity;

import android.content.Context;

import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.preference.PreferenceManager;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.TableLayout;

import android.widget.Toast;

public class profil extends ListActivity {

SharedPreferences util = PreferenceManager.getDefaultSharedPreferences(this);

String nom = util.getString("nom", "");

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setListAdapter(new ArrayAdapter(this,

android.R.layout.simple_list_item_1, mStrings));

getListView().setTextFilterEnabled(true);}

private String[] mStrings = {nom};

}

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

Alors, la comme ça je n'ai pas d'idée.

MAIS, pendant mes heures de debug ces derniers jours, je me suis rendu compte que pour afficher le LogCat sur un de mes problèmes je devait relancer l'application à partir de l'émulateur avec le LogCat derrière (en gros tu clique pour forcer la fermeture et tu vas dans le menu de ton émulateur pour relancer l'application).

Si il y a une erreur il va forcement l'indiquer, sans ces informations je ne vois pas comment t'aider.

Edit : Par contre par curiosité pourquoi voit-on que tes "imports" (?) sont en warning (soulignés en jaune/orange)?

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

J'ai essayer, sa marche toujours pas , mais il faut pas le configurer le LogCat??

Voila ce que me dit "Console" quand j'affiche le LogCat:

[2010-06-15 12:03:04 - Logcat]device (emulator-5554) request rejected: device not found

java.io.IOException: device (emulator-5554) request rejected: device not found

at com.android.ddmlib.AdbHelper.setDevice(Unknown Source)

at com.android.ddmlib.AdbHelper.executeRemoteCommand(Unknown Source)

at com.android.ddmlib.Device.executeShellCommand(Unknown Source)

at com.android.ddmuilib.logcat.LogPanel$3.run(Unknown Source)

Edit: mes import son en warning parce que je ne les utilisent pas mais sa n'influe pas sur l'application

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

C'est bon!! Le LogCat affiche les erreurs :

06-15 12:05:44.160: INFO/ActivityManager(59): Starting activity: Intent { cmp=com.enigme.myclasses/.profil }

06-15 12:05:44.230: DEBUG/AndroidRuntime(299): Shutting down VM}

06-15 12:05:44.230: WARN/dalvikvm(299): threadid=1: thread exiting with uncaught exception (group=0x4001d800)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): FATAL EXCEPTION: main}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.enigme.myclasses/com.enigme.myclasses.profil}: java.lang.NullPointerException}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.ActivityThread.access$2300(ActivityThread.java:125)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.os.Handler.dispatchMessage(Handler.java:99)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.os.Looper.loop(Looper.java:123)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.ActivityThread.main(ActivityThread.java:4627)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at java.lang.reflect.Method.invokeNative(Native Method)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at java.lang.reflect.Method.invoke(Method.java:521)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at dalvik.system.NativeStart.main(Native Method)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): Caused by: java.lang.NullPointerException}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.content.ContextWrapper.getPackageName(ContextWrapper.java:120)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:353)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:348)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at com.enigme.myclasses.profil.(profil.java:11)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at java.lang.Class.newInstanceImpl(Native Method)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at java.lang.Class.newInstance(Class.java:1429)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)}

06-15 12:05:44.250: ERROR/AndroidRuntime(299): ... 11 more}

06-15 12:05:44.270: WARN/ActivityManager(59): Force finishing activity com.enigme.myclasses/.profil

06-15 12:05:44.270: WARN/ActivityManager(59): Force finishing activity com.enigme.myclasses/.main

06-15 12:05:44.770: WARN/ActivityManager(59): Activity pause timeout for HistoryRecord{43fc2fb0 com.enigme.myclasses/.profil}

06-15 12:05:55.050: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{43fd5398 com.enigme.myclasses/.main}

06-15 12:05:55.070: WARN/ActivityManager(59): Activity destroy timeout for HistoryRecord{43fc2fb0 com.enigme.myclasses/.profil}

Voila

Lien vers le commentaire
Partager sur d’autres sites

Désolé suis au bureau et je croule un peu depuis le début l'après midi :)

Tu as bien un "NullPointerException" dans ton LogCat, tu peux nous poster ton XML avec ?

Parce que pour l'instant je ne vois pas d'erreur flagrante sur ton code, il se peux que ce soit juste un soucis de frappe/identification (j'en ai eu plein :))

Et j'essaye de repasser par ici pas trop tard, mais je ne peux pas te promettre un retour immédiat ;)

Lien vers le commentaire
Partager sur d’autres sites

J'ai juste sa dans mon XML

<?xml version="1.0" encoding="UTF-8"?>

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:clickable="false" android:background="@drawable/wallpaper">

Sa taiserat a rien je crois

Lien vers le commentaire
Partager sur d’autres sites

J'ai regarder un peu les fonctions que tu utilises, je me suis demandé si tu étais bien sûr que la donnée "nom" que tu demande existe bien ou le cas échéant si elle n'est pas à "NULL" justement.

A moins que je n'ai pas compris le truc, ton soucis vient peut être de là.

http://developer.android.com/reference/android/preference/PreferenceManager.html

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