2009-02-01 15 views
8

मैं एक सूची दृश्य को कार्यान्वित करना चाहता हूं, जिसे मैं कोई समस्या नहीं कर सकता/w/मेरा कर्सर। अभी इस बात पर निर्भर करता है कि आप किस पंक्ति पर क्लिक करते हैं, उस पंक्ति पर दबाए गए जानकारी के आधार पर आपको एक नई गतिविधि में ले जाता है (जैसा कि इसे चाहिए, और जैसा अपेक्षित है)। हालांकि, मैं पंक्ति को हटाने के लिए एक बटन रखना चाहता हूं, इसलिए कोई उपयोगकर्ता नई गतिविधि को लॉन्च करने के लिए पंक्ति के किसी भी भाग को दबा सकता है, लेकिन यदि वे उस पंक्ति पर बटन दबाते हैं, तो यह पंक्ति को हटा देता है (या एक डिलीट गतिविधि/समारोह)।एंड्रॉइड: एक सूची दृश्य पर एकाधिक क्रियाएं - फोकस समस्या

यदि आप @ DroidRecord देख सकते हैं, तो उनके पास एक समान लेआउट है जैसा कि मैं प्राप्त करने के लिए देख रहा हूं।

धन्यवाद!

क्रिस।

उत्तर

4

आपका प्रश्न क्या है? सूची पंक्ति में बटन कैसे जोड़ें?

बहुत आसान, जैसा कि आप उम्मीद करते हैं कि इसे पंक्ति के लेआउट में जोड़ा जाएगा।

दुर्भाग्य से हालांकि यह पूरी पंक्ति "अस्पृश्य" भी बनायेगा। Google डेवलपर मैंने पूछा कि यह डिज़ाइन (जहां तक ​​मुझे याद है) द्वारा है, और आपको इसका सामना करने के लिए टचडिलेगेट का उपयोग करना चाहिए। चूंकि एंड्रॉइड स्रोत में भी कोई नमूना नहीं है, और केवल बहुत पतला documentation जो मेरे लिए काम नहीं करता

वैसे भी, ऐसा लगता है कि कई एप्लिकेशन सूची पंक्ति में एक बटन का उपयोग नहीं करते हैं। मुझे केवल मेरे बारे में पता है (newsrob, लेख सूची देखें) और अलार्म घड़ी। शायद आप एक संदर्भ मेनू का उपयोग कर सकते हैं?

अन्यथा बदसूरत समाधान getView विधि में अपनी पंक्ति दृश्य पर setOnClickListener() को कॉल करने के लिए जोड़ना होगा।

चीयर्स

+0

क्या आप इसे समझा सकते हैं कि इसे पंक्ति दृश्य में कैसे सेट किया जाए? मेरी पंक्ति भरने वाले डेटा फ़ंक्शन के हिस्से के रूप में खींची जा रही है जिसे मैं सरल कर्सर एडाप्टर (यह, आर .layout.row_detail, c, से, से) का उपयोग करता हूं; ऑनक्लिक श्रोता सेट करने के लिए मुझे किस विधि को ओवरराइड करना चाहिए। जब मैं इसे अपनी निर्माण विधि पर आज़माता हूं, तो मेरा ऐप क्रैश हो जाता है। – Chrispix

+0

क्षमा करें, मैं SimpleCursorAdapter से परिचित नहीं हूं ... मैं बेसएडाप्टर का सीधे उपयोग करता हूं, लेकिन SimpleCursorAdapter को बहुत अधिक काम करना चाहिए। प्रलेखन को देखते हुए मुझे संदेह होगा कि बाइंडव्यू आपके लिए जाने का तरीका है। आपको वहां दृश्य (पंक्तिदृश्य) पास हो गया है। –

+0

जारी रहा .... यह देखने के लिए कि आपका ऐप क्रैश क्यों होता है (और इसे अपनी समस्या विवरण में शामिल करें) आप "adb -e logcat" का उपयोग कर सकते हैं। यह आपको चल रहे एमुलेटर के लॉगफाइल दिखाएगा। –

1

यह आपके सवाल का जवाब नहीं है, लेकिन लंबे समय से क्लिक करें/टैब आम तौर पर एक संदर्भ मेनू पॉप अप और अतिरिक्त कार्यों, हटाने की तरह डाल करने के लिए जगह है। एक पंक्ति के लिए बटन जोड़ने यह "अछूत", लेकिन मेरे अनुभव में, इस समस्या को दूर चला जाता है अगर आप बटन पर इन गुणों को सेट कर देगा How do you implement context menu in a ListActivity on Android?

6

देखें एक और संभावित समाधान - आप बटन के बजाय एक imageView उपयोग कर सकते हैं, और imageView के onClickListener सेट (उदाहरण के लिए, जब आप सेल दृश्य बढ़ा-चढ़ाकर रहे हैं)।

ImageView फोकस करने योग्य नहीं है, इसलिए यह OnListItemClick() को प्रेषित होने से नहीं रोकता है, और जब आप छवि पर क्लिक करते हैं तो केवल छवि के श्रोता की आग लगती है।

0

मैं बटन (ओं) को focusable राज्य को हटाने पर अपनी hint के लिए मंडल धन्यवाद देना चाहते हैं, यह मेरा दिन बचा लिया।

लेकिन जानकारी के लिए, चूंकि बटन focusable - state_focused < चयनकर्ता> xml - पर, यह डिज़ाइन अब उपयोगकर्ता को प्रदर्शित नहीं करेगा।

हालांकि उन बटनों को अभी भी pressed राज्य मिलेगा, लेकिन जब भी माता-पिता दृश्य पर कहीं और क्लिक किया जाता है (कहीं और बटन दबाएं)!

इसे ध्यान में रखें, यह आपके अपने मामले के लिए एक अच्छा समाधान नहीं हो सकता है, लेकिन यह अच्छी तरह से काम करता है।

0

मैं इस बटन पर क्लिक करने के लिए सक्षम होने के लिए कोशिश की, लेकिन यह मेरे लिए काम नहीं किया एंड्रॉयड: फ़ोकस करने योग्य = "false" एंड्रॉयड: focusableInTouchMode = "false"

तो क्या मैंने किया था बदलने के लिए था स्क्रॉलव्यू के लिए गतिविधि लेआउट और फिर इसके अंदर एक लाइनर जोड़ें। उसके बाद आप लेआउट में बटन जोड़ सकते हैं और प्रत्येक बटन क्लिक करने योग्य होगा।

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