Saya telah membuat onTouchListener
. Sayangnya onTouch () memberi throws
saya peringatan:
com/calculator/activitys/Calculator$1#onTouch should call View#performClick when a click is detected
Apa artinya? Saya belum menemukan informasi apapun tentang peringatan ini. Ini kode lengkapnya:
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
sumber
sumber
v.performClick()
. Implementasinya akan memainkan sedikit suara (jika Anda mengaktifkannya di perangkat Anda) dan memanggil onClickListener, yang mungkin belum Anda timpaJawaban:
Ini dia:
sumber
performClick
, bukan? Dalam kasus ini, saya tidak mengerti mengapa peringatan lint masih adaAnda dapat menekan Lint
Anda harus menelepon ke
performClick()
dalamonTouchEvent()
.atau
OnTouch
mengalirBaca lebih lanjut di sini
sumber
performClick()
. Silakan bagikan kode AndaJika Anda tidak menggunakan
Custom View
yang secara eksplisit menimpaonPerformClick
, peringatan tidak akan dihapus hanya dengan mengikuti jawaban Secko.Selain jawabannya, untuk melakukan hal yang sama pada kelas seperti
android.widget.Button
atauButton
Anda perlu membuat tampilan kustom sederhana yang memperluas tampilan target.Contoh:
Kelas Tampilan Kustom:
XML :
Jawa :
Masalah saat ini: Peringatan diselesaikan oleh IDE, tetapi tidak dapat melihat tindakan klik yang melakukan tindakan ini secara praktis pada Perangkat Android yang sebenarnya.
EDIT : Tetap mendapatkan acara klik: Gunakan
View.setPressed(boolean)
sumber
panggil saja metode performClick, seperti ini:
sumber
Saya memiliki masalah serupa dengan
MultiTouchListener
dan menyelesaikannya dengan menerapkanGestureDetector
dan mendengarkanSingleTap
(Ini tidak menghapus peringatan tetapi mulai memicuonClick
peristiwa pada pandangan saya)sumber