2012-07-06 8 views
8

मुझे getX() मिल सकता है, और getY() दोनों एक फ्लोट लौट सकते हैं। लेकिन मैं कैसे पता लगा सकता हूं कि TouchEvent e.get(), e.getY() के निर्देशांक EditText UI तत्व की सीमाओं के भीतर हैं या नहीं? मुझे लगता है कि getX() और getY() फ्लोट हैं लेकिन getHeight(), और getWidth() int हैं। तुलना के साथ मदद नहीं करेगा ...मैं कैसे पता लगा सकता हूं कि एक टच इवेंट एक संपादन टेक्स्ट में उतरा है या नहीं?

+0

आपने क्या प्रयास किया है? मैं ** अत्यधिक ** [ऑन टचलिस्टर दस्तावेज] (http://developer.android.com/reference/android/view/View.OnTouchListener.html) पढ़ने की अनुशंसा करता हूं ... – Sam

+0

मेरी पोस्ट संपादित की गई। – Ixx

+0

मैंने जो कोशिश की है वह है 'कोड से पहले सोचें' –

उत्तर

28

आप वास्तव में क्या करना चाहते हैं? अगर आप केवल यह पता लगाना चाहते हैं कि आपका एडिटटेक्स्ट छुआ है या नहीं, तो ऑनटचलिस्टर को EditText ... या यहां तक ​​कि OnClickListener में जोड़ें।

संपादित करें: आप बाहर का पता लगाने के लिए चाहते हैं, तो आप युक्त ध्यान में रखते हुए टच घटना का पता लगा सकते हैं, और फिर, यह देखते हुए आप अपने EditText दृश्य है:

Rect editTextRect = new Rect(); 
myEditText.getHitRect(editTextRect); 

if (!editTextRect.contains((int)event.getX(), (int)event.getY())) { 
    Log.d("test", "touch not inside myEditText"); 
} 

या आप एक स्पर्श श्रोता EditText करने के लिए दोनों को जोड़ने और कंटेनर, और एडिटटेक्स्ट में से किसी एक में झूठी वापसी, इस तरह इसे अवरुद्ध कर दिया जाएगा और माता-पिता को अग्रेषित नहीं किया जाएगा। इसलिए, माता-पिता के श्रोता में आपके द्वारा देखे जाने वाले सभी स्पर्श, संपादन टेक्स्ट से संबंधित नहीं होंगे।

+0

इसके विपरीत। पता करें कि संपादन टेक्स्ट के बाहर एक स्पर्श घटना हुई है या नहीं। –

+0

लेकिन "अंदर" का मतलब "अंदर" नहीं है, या मेरी अंग्रेजी गलत है? – Ixx

+0

ठीक है। मुझे लगता है कि यह मूल रूप से सही है। लेकिन मैं कंटेनर को प्राप्त करने के बारे में स्पष्टीकरण देना चाहता हूं। डिबगिंग यह इंगित करता है कि एडिटटेक्स्ट जैसे निहित तत्व अपनी स्पर्श घटनाओं को घुमाते हैं और वे कंटेनर तक बबल नहीं करते हैं। चेक बॉक्स जैसे गतिविधि पर हर दूसरे तत्व भी अपने क्षेत्र में रहने वाली स्पर्श घटना को गोबले (बुलबुला नहीं करते)। शायद वे अपने स्पर्श घटनाओं को बुलबुला करने के लिए एक निहित तत्व को बताने के लिए मैनिफेस्ट में कुछ सेटिंग हैं या आपको ऐसा करने के लिए एक विधि को ओवरराइड करने की आवश्यकता होगी? –

संबंधित मुद्दे

 संबंधित मुद्दे