سؤال

في الواقع أحاول تطبيق تطبيق OnTouchListener في تطبيق Android (1.5) الخاص بي. لذلك قمت بتنفيذ "ontouchlistener" في الفصل، ثم وضعت التعليمات البرمجية الخاصة بي في:

public boolean onTouchEvent (MotionEvent e){
 //code
}

المشكلة هي أنه إذا جرت أكثر من (على سبيل المثال) لا يتم استدعاء الدوار أو edittextview من هذه الطريقة. الطريقة الوحيدة لحل هذا والتي أحسبها هي إضافة ontouchlistener إلى كل من هذه الآراء يدويا:

((Spinner)(findViewById(R.id.spinner1))).setOnTouchListener(tl);
((Spinner)(findViewById(R.id.spinner2))).setOnTouchListener(tl);

(TL هو ontouchlistener) لذلك أليس هناك طريقة للقبض على حدث اللمس قبل أن يصل إلى كل من تلك الآراء؟ شكرا مقدما

ريبتي

هل كانت مفيدة؟

المحلول

ماذا تريد بالضبط - هل تريد:

  • كشف إيماءات كاملة في بعضActivity.
  • كشف اللمسات فقط للحصول علىView

إذا كنت تريد السابق:

الق نظرة على هذا المثال:فرقة الكشف عن لفتة على تخطيط الشبكة.

أساسا، يمكنك إعادة توجيه جميع أحداث اللمس المسجلة إلى GestureDetectorوبعد يفهم ما هو بالضبط إدخال المستخدم (اضغط واحد، انقر نقرا مزدوجا، والتمرير، وما إلى ذلك) ويستدعي رد الاتصال المقابل في SimpleOnGestureListener, ، والتي يجب أن تنفذ.

إذا كنت تريد الأخير:

يمكنك إما:

  1. تجاوز العرض onTouchEvent().
  2. تنفيذ وينف onTouchListener (إذا كنت ترغب في الحصول على اللمس قبل إرسالها إليها).

إذا كنت ترغب في التنفيذ onTouchListener, ، سوف تفعل عملك وليس في onTouchEvent() الطريقة، ولكن في الواجهة onTouch() طريقة.

امل ان يساعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top