Skd Posté(e) 24 mars 2011 Share Posté(e) 24 mars 2011 Bonjour, Voila, je débute sur Android et je voudrai pouvoir changer une image suivant l'appui sur 2 boutons : Suivant / Précédent. J'ai vu plusieurs choses sur le net mais rien de concret: une imageview, un array, thread, activity, intent etc ... Du coup je ne sais plus du tout quoi utiliser, j'ai bien mon image qui s'affiche dans un imageview pour l'instant, il me faut donc une méthode pour changer cette image suivant l'appui du bouton. Ces 3 images sont enfaite des images de tensions, si on appui sur Suivant on augmente la valeur, si on appui sur précédent on la diminue, il y a 3 images en tout donc 3 tensions. Merci d'avance pour votre aide Sked Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lord Yu Posté(e) 24 mars 2011 Share Posté(e) 24 mars 2011 Salut, Je ne suis pas sûr de bien comprendre mais au cas où. Ton ImageView possède une méthode "setImageDrawable(drawable)", il suffirait donc en de faire un switch: switch (maValeur) { case 1: monImageview.setImageDrawable(R.drawable.image1); break; case 2: monImageview.setImageDrawable(R.drawable.image2); break; case 3: monImageview.setImageDrawable(R.drawable.image3); break; default: break; } Lorsque tu cliques sur suivant tu incrémentes "maValeur", sinon tu décrémentes. Ca répond à ta question? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Skd Posté(e) 24 mars 2011 Auteur Share Posté(e) 24 mars 2011 Merci beaucoup pour cette piste, j'ai essayé cette méthode mais le setImageDrawable n'est pas reconnu : @Override public void onClick(View v) { ImageView imageview; int maValeur = 0; switch (maValeur) { case 1: imageview.setImageDrawable(R.drawable.carre1); break; case 2: imageview.setImageDrawable(R.drawable.carre2); break; case 3: imageview.setImageDrawable(R.drawable.carre3); break; default: break; } Il me propose de le remplacer par un setBackGroundDrawable, ce qui a pour effet une autre erreur qui peut être resolue par le remplacement de setBackGroundDrawable par setImageDrawable >.< J'ai l'impression de tourner en rond :D Lien vers le commentaire Partager sur d’autres sites More sharing options...
Skd Posté(e) 24 mars 2011 Auteur Share Posté(e) 24 mars 2011 Voila une méthode qui fonctionnerai mais j'ai encore des erreurs et je tombe sur un ForceClose :/ Voici le logcat: 03-24 17:47:38.409: INFO/ActivityManager(52): Starting activity: Intent { cmp=com.duic/.Relax } 03-24 17:47:38.499: DEBUG/AndroidRuntime(231): Shutting down VM 03-24 17:47:38.509: WARN/dalvikvm(231): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 03-24 17:47:38.519: ERROR/AndroidRuntime(231): Uncaught handler: thread main exiting due to uncaught exception 03-24 17:47:38.539: ERROR/AndroidRuntime(231): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.duic/com.duic.Relax}: java.lang.NullPointerException 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at android.os.Handler.dispatchMessage(Handler.java:99) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at android.os.Looper.loop(Looper.java:123) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at android.app.ActivityThread.main(ActivityThread.java:4363) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at java.lang.reflect.Method.invokeNative(Native Method) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at java.lang.reflect.Method.invoke(Method.java:521) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at dalvik.system.NativeStart.main(Native Method) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): Caused by: java.lang.NullPointerException 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at com.duic.Relax.onCreate(Relax.java:28) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 03-24 17:47:38.539: ERROR/AndroidRuntime(231): ... 11 more 03-24 17:47:38.559: INFO/Process(52): Sending signal. PID: 231 SIG: 3 03-24 17:47:38.559: INFO/dalvikvm(231): threadid=7: reacting to signal 3 03-24 17:47:38.559: ERROR/dalvikvm(231): Unable to open stack trace file '/data/anr/traces.txt': Permission denied 03-24 17:47:42.329: INFO/Process(231): Sending signal. PID: 231 SIG: 9 03-24 17:47:42.359: INFO/ActivityManager(52): Process com.duic (pid 231) has died. 03-24 17:47:42.379: INFO/WindowManager(52): WIN DEATH: Window{43cb95a0 com.duic/com.duic.menu paused=false} 03-24 17:47:42.419: INFO/ActivityManager(52): Start proc com.duic for activity com.duic/.menu: pid=237 uid=10031 gids={} 03-24 17:47:42.789: DEBUG/ddm-heap(237): Got feature list request 03-24 17:47:42.899: INFO/UsageStats(52): Unexpected resume of com.duic while already resumed in com.duic 03-24 17:47:42.929: INFO/ActivityManager(52): Displayed activity com.duic/.menu: 541 ms (total 4473 ms) 03-24 17:47:43.179: DEBUG/dalvikvm(237): GC freed 587 objects / 49864 bytes in 89ms 03-24 17:47:43.599: WARN/InputManagerService(52): Got RemoteException sending setActive(false) notification to pid 231 uid 10031 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Skd Posté(e) 25 mars 2011 Auteur Share Posté(e) 25 mars 2011 Voila la solution: j'ai rajouter dans le OnCreate super.onCreate(savedInstanceState); setContentView(R.layout.relax); et pour les boutons: this.findViewById(R.id.Pred).setOnClickListener(this); this.findViewById(R.id.Suiv).setOnClickListener(this); Pred = (Button) this.findViewById(R.id.Pred); Suiv = (Button) this.findViewById(R.id.Suiv); L'écran fonctionne, les boutons aussi. Je n'ai pas de soucis avec le "Précédent" mais lorsque j'arrive a la fin de mon arraylist et que je fais "Suivant" je plante l'appli. 03-25 10:30:37.532: DEBUG/AndroidRuntime(970): Shutting down VM 03-25 10:30:37.532: WARN/dalvikvm(970): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 03-25 10:30:37.542: ERROR/AndroidRuntime(970): Uncaught handler: thread main exiting due to uncaught exception 03-25 10:30:37.562: ERROR/AndroidRuntime(970): java.lang.IndexOutOfBoundsException: Invalid location 3, size is 3 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at java.util.ArrayList.get(ArrayList.java:341) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at com.duic.Relax.onClick(Relax.java:50) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at android.view.View.performClick(View.java:2364) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at android.view.View.onTouchEvent(View.java:4179) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at android.widget.TextView.onTouchEvent(TextView.java:6541) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at android.view.View.dispatchTouchEvent(View.java:3709) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at android.os.Handler.dispatchMessage(Handler.java:99) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at android.os.Looper.loop(Looper.java:123) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at android.app.ActivityThread.main(ActivityThread.java:4363) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at java.lang.reflect.Method.invokeNative(Native Method) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at java.lang.reflect.Method.invoke(Method.java:521) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 03-25 10:30:37.562: ERROR/AndroidRuntime(970): at dalvik.system.NativeStart.main(Native Method) 03-25 10:30:37.582: INFO/Process(52): Sending signal. PID: 970 SIG: 3 03-25 10:30:37.582: INFO/dalvikvm(970): threadid=7: reacting to signal 3 03-25 10:30:37.582: ERROR/dalvikvm(970): Unable to open stack trace file '/data/anr/traces.txt': Permission denied J'ai essayé avec un compteur = 3 ou compteur < array.size() de remettre l'image par défaut de l'imageview mais l'erreur persiste. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.