Ich habe eine erstellt onTouchListener
. Leider gibt throws
mir onTouch () eine Warnung:
com/calculator/activitys/Calculator$1#onTouch should call View#performClick when a click is detected
Was bedeutet das? Ich habe keine Informationen zu dieser Warnung gefunden. Hier ist der vollständige Code:
LinearLayout llCalculatorContent = (LinearLayout) fragmentView.findViewById(R.id.calculator_content);
llCalculatorContent.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Tools.hideKeyboard(getActivity(), getView());
getView().clearFocus();
return false;
}
});
android
ontouchlistener
Trzy Gracje
quelle
quelle
v.performClick()
. Die Implementierung spielt einen kleinen Ton (wenn Sie ihn auf Ihrem Gerät aktiviert haben) und ruft den onClickListener auf, den Sie wahrscheinlich nicht überschrieben habenAntworten:
Bitte schön:
quelle
performClick
, oder? In diesem Fall verstehe ich nicht, warum dieSie können die Flusen unterdrücken
Sie sollten
performClick()
drinnen anrufenonTouchEvent()
.oder
OnTouch
fließenLesen Sie hier mehr
quelle
performClick()
. Bitte teilen Sie Ihren CodeFalls Sie keine verwenden,
Custom View
die explizit überschreibtonPerformClick
, wird die Warnung nicht entfernt, wenn Sie nur Seckos Antwort folgen.Zusätzlich zu seiner Antwort müssen Sie eine einfache benutzerdefinierte Ansicht erstellen, die die Zielansicht erweitert, um dasselbe für Klassen wie
android.widget.Button
oder zu tunButton
.Beispiel:
Die benutzerdefinierte Ansichtsklasse:
XML :
Java :
Aktuelle Probleme: Die Warnung wird von der IDE behoben, kann jedoch nicht sehen, dass diese Klickaktion auf einem echten Android-Gerät praktisch ausgeführt wird.
BEARBEITEN : Das Klickereignis wurde behoben: Verwenden
View.setPressed(boolean)
quelle
Rufen Sie einfach die performClick-Methode wie folgt auf:
quelle
Ich hatte ein ähnliches Problem mit a
MultiTouchListener
und löste es, indem ich a implementierteGestureDetector
und auf a wartete.SingleTap
(Dadurch wird die Warnung nicht entfernt, sondern es werdenonClick
Ereignisse in meiner Ansicht ausgelöst. )quelle