Bob Posted August 14, 2009 Share Posted August 14, 2009 Bonjour, je voulais savoir si la classe principale pouvait être extends de ListActivity au lieu d'Activity, parce que je reçois un message d'erreur dans ce cas, je ne comprends pas bien pourquoi. merci Quote Link to comment Share on other sites More sharing options...
eden91940 Posted August 14, 2009 Share Posted August 14, 2009 oui a priori y'a pas de raisons, quelle erreur apparaît ? Quote Link to comment Share on other sites More sharing options...
Fluckysan Posted August 14, 2009 Share Posted August 14, 2009 Oui c'est possible mais il faut dans ce cas que ton layout comprenne une ListView avec : android:id="@id/android:list" C'est la liste que complètera auquel se rapportera l'Activity :) Quote Link to comment Share on other sites More sharing options...
popolbx Posted August 14, 2009 Share Posted August 14, 2009 pour info la fenêtre principale de ma nouvelle appli keepscreen (pub discrête ^^) est une listactivity. Tu as l'erreur à l'éxecution ou à la compile ? Quote Link to comment Share on other sites More sharing options...
popolbx Posted August 14, 2009 Share Posted August 14, 2009 Oui c'est possible mais il faut dans ce cas que ton layout comprenne une ListView avec : android:id="@id/android:list" C'est la liste que complètera auquel se rapportera l'Activity :) bein non... la listactivity a déjà une liste interne... par contre il faut faire un setAdapter dans le onCreate sinon ta ListActivity va être à l'ouest. Et dans l'adapter (SimpleAdapter ou BasicAdapter) implémenter les fonctions de list, dans le getView pour aller chercher un layout qui sers de ligne. Quote Link to comment Share on other sites More sharing options...
Fluckysan Posted August 14, 2009 Share Posted August 14, 2009 (edited) bein non... la listactivity a déjà une liste interne... Oui bien sûr mais il faut dire où elle est dans le layout, d'où le android:id="@id/android:list" qui est un identifiant pour la liste interne à la ListActivity On parle de la même liste, celle implémentée dans la classe ListActivity Edited August 14, 2009 by Fluckysan Quote Link to comment Share on other sites More sharing options...
thomas.l Posted August 14, 2009 Share Posted August 14, 2009 Oui bien sûr mais il faut dire où elle est dans le layout, d'où le android:id="@id/android:list" qui est un identifiant pour la liste interne à la ListActivity On parle de la même liste, celle implémentée dans la classe ListActivity Tu n'as pas besoin de redéfinir un layout surtout. Je rejoins popolbx là dessus. C'est tout l'intérêt d'utiliser une ListActivity : pas besoin de faire une Activity à laquelle on fait "inflater" un layout maison. Quote Link to comment Share on other sites More sharing options...
Fluckysan Posted August 14, 2009 Share Posted August 14, 2009 En effet, pô besoin je suis tout à fait d'accord avec vous Je parlais du cas où on veut mettre autre chose sur son Activity (par exemple des boutons) :o Je trouve ça plus propre de le mettre dans un layout, après les goûts et les couleurs ... Bref, pour ne pô polluer le topic de Bob, attendons sa réponse sur son bug ;) Quote Link to comment Share on other sites More sharing options...
Bob Posted August 14, 2009 Author Share Posted August 14, 2009 (edited) Alors en fait, après plusieurs tests, ce n'est pas ça le problème, mais c'est que je n'arrive pas à creer de listview à partir d'un ArrayList, j'obtiens l'erreur lorsque je lance le programme. Pour info, j'ai donc mon layout main.xml avec un listview. Edited August 14, 2009 by Bob Quote Link to comment Share on other sites More sharing options...
thomas.l Posted August 14, 2009 Share Posted August 14, 2009 Il faudrait préciser quelle erreur, là c'est vrai qu'on voit pas bien. Ca peut être tout et n'importe quoi. Quote Link to comment Share on other sites More sharing options...
Bob Posted August 14, 2009 Author Share Posted August 14, 2009 Alors pour l'erreur c'est un truc du genre : Le processis com.aaaa.aaa.aaa a du se fermer ... et après j'ai un bouton forcer, m'enfin je ne suis pas chez moi donc ne peux pas vérifier. Au niveau du code c'était quelque chose comme ça : mList = (ListView) findViewById(android.R.id.list); final ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,mArrayList); mPhotosList.setAdapter(adapter); mPhotosList.setOnItemClickListener(this) Quote Link to comment Share on other sites More sharing options...
Fluckysan Posted August 15, 2009 Share Posted August 15, 2009 Procède par étapes : enlève ton setOnItemClickListener pour dans un permier temps arriver à faire l'affichage de la liste Ensuite qu'est ce que tu as dans ton mArrayList et de quel type est-il ? Et pourrais-tu aller jeter un coup d'oeil dans ton DDMS (Window ===> Open Perspective ===> DDMS) dans la partie LogCat (Window ===> Show Window ===> LogCat) et nous copier / coller le message d'erreur (en rouge flashy bien voyant :p) Quote Link to comment Share on other sites More sharing options...
Bob Posted August 17, 2009 Author Share Posted August 17, 2009 Alors j'ai un peu modifié le code, m'enfin j'obtiens toujours le même problème, lorsque je lance mon programme, une box me dit que : The application CountAll (process org. ...) has stopped inexpectedlu. Please try again. Pour le code, j'ai ça : private final String[] LISTO1 = new String[] {"aa","bb"}; ListView list1 = (ListView) findViewById(android.R.id.list); list1.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, LISTO1)); Pour le LogCat, voilà ce que j'ai : 08-17 07:54:18.369: WARN/dalvikvm(817): threadid=3: thread exiting with uncaught exception (group=0x4000fe70) 08-17 07:54:18.369: ERROR/AndroidRuntime(817): Uncaught handler: thread main exiting due to uncaught exception 08-17 07:54:18.388: ERROR/AndroidRuntime(817): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.Count.All.my/org.Count.All.my.CountAll}: java.lang.NullPointerException 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at android.app.ActivityThread.access$1800(ActivityThread.java:112) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at android.os.Handler.dispatchMessage(Handler.java:99) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at android.os.Looper.loop(Looper.java:123) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at android.app.ActivityThread.main(ActivityThread.java:3948) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at java.lang.reflect.Method.invokeNative(Native Method) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at java.lang.reflect.Method.invoke(Method.java:521) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at dalvik.system.NativeStart.main(Native Method) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): Caused by: java.lang.NullPointerException 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at org.Count.All.my.CountAll.onCreate(CountAll.java:29) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231) 08-17 07:54:18.388: ERROR/AndroidRuntime(817): ... 11 more 08-17 07:54:20.329: WARN/InputManagerService(574): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@43749bc0 Quote Link to comment Share on other sites More sharing options...
Max_well Posted August 17, 2009 Share Posted August 17, 2009 Tu devrais vérifier que ton "list1" n'est pas à null au retour de "findViewById(android.R.id.list)". Si c'est le cas, c'est que tu utilises un layout perso (setContentView()) et qu'il n'as pas "@android:id/list". ( http://developer.android.com/reference/android/app/ListActivity.html ) Quote Link to comment Share on other sites More sharing options...
Bob Posted August 17, 2009 Author Share Posted August 17, 2009 Effectivement, je n'avais pas de setContentView, merci :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.