web-dev-qa-db-fra.com

La vue personnalisée 'ImageButton' a appelé setOnTouchListener mais ne remplace pas performClick

Eh bien, je sais qu'il y a des questions concernant cet avertissement, mais je n'arrive toujours pas à comprendre comment m'en débarrasser. Je ne veux pas implémenter l'interface OnTouchListener au niveau de la classe, car il y a beaucoup de boutons et je préfère garder chaque morceau de code sur son propre "espace". J'ai ajouté performClick() après ACTION_UP cas mais l'avertissement persiste.

enter image description here

Merci

send.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View view, MotionEvent motionEvent) {
                    switch (motionEvent.getAction()){
                        case MotionEvent.ACTION_UP:
                            view.performClick();
                            break;
                        default:
                            break;
                    }
                    return true;
                }
            });
21
AeonDave

Votre code est OK, si vous êtes sûr que votre code fonctionne comme vous le souhaitez, vous pouvez simplement désactiver ce type d'avertissements dans: Fichier -> Paramètres -> Éditeur -> Inspections -> Android -> Lint -> Accessibilité -> Accessibilité dans les vues personnalisées

12
Dan

Fondamentalement, cela suggère que vous devez sous-classer ImageButton et remplacer sa méthode performClick() mais cela ne vaut pas la peine de supprimer cet avertissement en utilisant @SuppressLint("ClickableViewAccessibility") dans votre méthode ou simplement désactiver cet avertissement comme j'ai fait.

9
ThanosFisherman