He creado un onTouchListener
. Desafortunadamente, el método onTouch () throws
me advierte:
com/calculator/activitys/Calculator$1#onTouch should call View#performClick when a click is detected
¿Qué significa? No he encontrado ninguna información sobre esta advertencia. Aquí está el código completo:
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
fuente
fuente
v.performClick()
. La implementación reproducirá un pequeño sonido (si lo tiene habilitado en su dispositivo) y llamará al onClickListener, que probablemente no haya anuladoRespuestas:
Aqui tienes:
fuente
performClick
, ¿verdad? En este caso, no entiendo por qué la advertencia de pelusa sigue ahíPuede suprimir la pelusa
Deberías llamar
performClick()
adentroonTouchEvent()
.o
OnTouch
fluirLeer más aquí
fuente
performClick()
. Comparta su códigoEn caso de que no esté utilizando un
Custom View
que anula explícitamenteonPerformClick
, la advertencia no se eliminará simplemente siguiendo la respuesta de Secko.Además de su respuesta, para hacer lo mismo en clases como
android.widget.Button
oButton
necesita hacer una vista personalizada simple que amplíe la vista de destino.Ejemplo:
La clase de vista personalizada:
XML :
Java :
Problemas actuales: IDE resuelve la advertencia, pero no puede ver esta acción de hacer clic prácticamente en un dispositivo Android real.
EDITAR : Se corrigió la obtención del evento de clic: Usar
View.setPressed(boolean)
fuente
simplemente llame al método performClick, así:
fuente
Tuve un problema similar con a
MultiTouchListener
y lo resolví implementandoGestureDetector
ay escuchando aSingleTap
(Esto no elimina la advertencia pero comienza a activaronClick
eventos en mi vista)fuente