L'activité onTouchEvent() n'est pas appelée en cliquant sur le Bouton
Je veux faire un B. logique dans Activity.onTouchEvent()
méthode. Il fonctionne très bien pour TextView
et d'autres non cliquable points de vue. Cependant, il n'est pas appelé uponclicking de Button
. Mais j'ai besoin que trop.
Voici le code.
public class MainActivity extends Activity {
private static final String TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Oh shit!! click performed... :(", Toast.LENGTH_LONG).show();
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.d(TAG, "ssssssssssssssssssssssss:touch");
return super.onTouchEvent(event);
}
public boolean dispatchTouchEvent(MotionEvent event) {
int eventaction=event.getAction();
switch(eventaction) {
case MotionEvent.ACTION_MOVE:
break;
default:
break;
}
return super.dispatchTouchEvent(event);
}
}
Merci de m'aider à faire le tri de ce.
Pour les docs, de l'Activité.onTouchEvent() est appelée uniquement "lorsque un écran tactile de l'événement n'a pas été gérée par les avis en vertu de l'". Depuis votre bouton consomme/gère l'événement de touche, l'activité n'est pas la réception de l'appel. Le TextViews ne consomme pas l'événement click. Que vous observez serait le comportement attendu.
J'ai ajouté à la solution ci-dessous par la manipulation de l'Activité.dispatchTouchEvent() la méthode.
J'ai ajouté à la solution ci-dessous par la manipulation de l'Activité.dispatchTouchEvent() la méthode.
OriginalL'auteur Noundla Sandeep | 2013-04-01
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé dispatchTouchEvent(MotionEvent ev). Voici la solution.
Ci-dessous est la hiérarchie sur la façon dont le toucher événement est traité par niveau de l'OS.
Avec ce que j'ai limité les événements tactiles des points de vue qui ne sont pas dans des layouts/points de vue.
OriginalL'auteur Noundla Sandeep
Où vous avez de l'inscription de l'touchListener pour le bouton. Vous avez mis en œuvre le clickListener pour le bouton. Pour appeler la onTouchEvent() pour le bouton,vous devez vous Inscrire sur le bouton: bouton.setOnTouchListener(ce);
OriginalL'auteur Ranjit
OriginalL'auteur Manish Srivastava
Veuillez ajouter le code ci-dessous dans votre méthode onCreate.
dans ce que vous pouvez obtenir vers le bas, déplacer ou jusqu'à l'événement de Bouton.
Écrire votre logique lorsque le Bouton jusqu'à l'événement d'appel.
OriginalL'auteur Divyang Metalia
J'ai eu le même problème. Il est très facile à résoudre, sans enlever votre:
ajouter le bouton:
OriginalL'auteur toni