J'ai une MainActivity où la majeure partie de mon code est écrite. J'ai une imageview dans mon activity_main.xml que je mets à une image par défaut dans Mainactivity. Mon autre fichier "OnSwipeTouchListener" est à l'écoute des événements swipe et double tap, j'ai écrit le code pour changer l'image de l'imageview lorsque l'utilisateur tape deux fois mais mon code ne fonctionne pas, ni aucune erreur. (J'utilise Layoutinflater pour gonfler le fichier activity_main).Impossible de changer l'image d'Imageview d'une autre classe
Voici le OnSwipeTouchListener
package com.backspace.memebook;
import android.content.Context;
import android.view.GestureDetector;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
public class OnSwipeTouchListener extends MainActivity implements OnTouchListener {
private final GestureDetector gestureDetector;
public Context ctx;
public OnSwipeTouchListener (Context ctx){
gestureDetector = new GestureDetector(ctx, new GestureListener());
this.ctx = ctx;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
private final class GestureListener extends SimpleOnGestureListener {
private static final int SWIPE_THRESHOLD = 100;
private static final int SWIPE_VELOCITY_THRESHOLD = 100;
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
System.out.println("double tap");
LayoutInflater mInflater = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = mInflater.inflate(R.layout.activity_main, null);
ImageView isFunny = (ImageView) view.findViewById(R.id.isFunny);
isFunny.setImageResource(R.drawable.funny);
return super.onDoubleTap(e);
}
}
}
MainActivity n'a pas beaucoup de code, il définit simplement une image par défaut du imageview qui montre bien mais lorsque je tente de le changer en utilisant un autre classe, ça ne change pas.
ANybody a des indices?
Vous devez gonfler et stocker la référence à la vue dans votre MainActivity. Moyens: onCreate() stocke la vue accessible depuis votre GestureListener. –