Eu criei um onTouchListener
. Infelizmente, o método onTouch () throws
me avisou :
com/calculator/activitys/Calculator$1#onTouch should call View#performClick when a click is detected
O que isso significa? Não encontrei nenhuma informação sobre este aviso. Aqui está o 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
fonte
fonte
v.performClick()
. A implementação irá tocar um pouco de som (se estiver habilitado em seu dispositivo) e chamar o onClickListener, que provavelmente você não substituiuRespostas:
Aqui está:
fonte
performClick
, certo? Neste caso, não entendo por que o aviso de fiapo ainda está láVocê pode suprimir o fiapo
Você deve ligar para
performClick()
dentroonTouchEvent()
.ou
OnTouch
fluxoLeia mais aqui
fonte
performClick()
. Compartilhe seu códigoCaso você não esteja usando um
Custom View
que se sobrepõe explicitamenteonPerformClick
, o aviso não será removido apenas seguindo a resposta de Secko.Além de sua resposta, para fazer o mesmo em classes como
android.widget.Button
ouButton
você precisa fazer uma visualização customizada simples que amplie a visualização de destino.Exemplo:
A classe de visualização personalizada:
XML :
Java :
Problemas atuais: o aviso é resolvido pelo IDE, mas não consigo ver isso praticamente realizando uma ação de clique em um dispositivo Android real.
EDIT : Corrigido o recebimento do evento click: Use
View.setPressed(boolean)
fonte
basta chamar o método performClick, como este:
fonte
Tive um problema semelhante com um
MultiTouchListener
e resolvi implementando umGestureDetector
e ouvindo umSingleTap
(isso não remove o aviso, mas começa a dispararonClick
eventos na minha visualização)fonte