web-dev-qa-db-ja.com

カスタムビュー「ImageButton」にはsetOnTouchListenerが呼び出されていますが、performClickをオーバーライドしません

まあ、私はこの警告に関していくつかの質問があることを知っていますが、私はまだこれを取り除く方法を理解できません。クラスレベルでOnTouchListenerインターフェイスを実装したくありません。多くのボタンがあり、すべてのコードを自分の「スペース」に保持することを好みます。 _ACTION_UP_ケースの後にperformClick()を追加しましたが、警告が引き続き発生します。

enter image description here

ありがとうございました

_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

コードは問題ありません。コードが希望どおりに動作することが確実な場合は、次のような種類の警告を無効にできます。File-> Settings-> 編集者-> 検査-> Android-> Lint-> アクセシビリティ-> カスタムビューのアクセシビリティ

12
Dan

基本的に、ImageButtonをサブクラス化し、performClick()メソッドをオーバーライドすることをお勧めしますが、メソッドで@SuppressLint("ClickableViewAccessibility")を使用してこの警告を抑制するか、単にこの警告を無効にするだけの価値はありません私がしたように。

9
ThanosFisherman