2013-08-09 8 views
5

में है, तो यह समस्या मुझे थोड़ी देर के लिए परेशान कर रही है। मेरे पास एक सूची दृश्य है और प्रत्येक पंक्ति में तीन एडिटटेक्स्ट हैं जिसमें उपयोगकर्ता डेटा दर्ज कर सकते हैं। जब कोई उपयोगकर्ता एक संपादन बॉक्स का चयन करता है, तो पाठ का चयन किया जाना चाहिए, इसलिए जब वह पहली कुंजी टाइप करता है, तो पिछला पाठ हटा दिया जाता है।SelectAllOnFocus के साथ अजीब व्यवहार जब EditText ListView

यह सब पूरी तरह से selectAllOnFocus विकल्प के साथ सही काम करता है। समस्या तब होती है जब मुझे सूचित करना हैडेटाट चेंज किया गया है। प्रत्येक पंक्ति में एक बटन होता है जो पंक्ति को हटा देता है और वह तब होता है जब मैं एडाप्टर की NotifyDataSetChanged विधि को कॉल करता हूं। इसके बाद, जब कोई उपयोगकर्ता एडिटबॉक्स चुनता है, तो यह पूरे टेक्स्ट का चयन नहीं करता है, लेकिन कर्सर पाठ के बाईं ओर सेट होता है और कर्सर के नीचे एक तीर प्रदर्शित होता है।

मैंने कोड में और लेआउट फ़ाइल में selectAllOnFocus सेट करने का प्रयास किया, लेकिन कोई भाग्य नहीं।

मुझे क्या प्रयास करना चाहिए? क्या मैं कुछ भूल रहा हूँ?

मैंने ध्यान केंद्रित करने की घटना को बदलने की कोशिश की, कोई भाग्य नहीं।

धन्यवाद!

उत्तर

0

पर अमान्य कॉल करने के बाद दृश्य को फिर से फुलाया गया था जब भी मैं एडाप्टर को कॉल करता हूं .notifyDataSetChanged(), मुझे लगा कि मुझे इसके चारों ओर जाने की कोशिश करनी चाहिए। और यह मैं क्या कर समाप्त हो गया है:

adapter.clear();  
adapter = new AdapterOfWhateverItemsTypeIs(this, items); 
listview.setAdapter(adapter); 
adapter.notifyDataSetChanged(); 

इस के बाद, मैं EditText की selectAllOnFocus विकल्प की अपेक्षित व्यवहार मिला है।

0

आपके द्वारा प्राप्त करने की कोशिश की जाने वाली अपेक्षित व्यवहार क्या है?

संपादित करें:

क्यों नहीं मैन्युअल रूप से एक दो क्लिक ईवेंट बंद फायरिंग का प्रयास करें। यह थोड़ा सा हैकी समाधान है, लेकिन अगर यह परवाह करता है तो यह काम करता है। आप क्या कर सकते अपनी सूची दृश्य से राय यह है कि आप पाठ में चयन किया है चाहता हूँ मिलता है और बंद के बाद का उपयोग कर यह सुनिश्चित कर लें ताकि

myEdit.post(new Runnable(){ 

    public void run() 
    { 
    myEdit.performClick(); 
    myEdit.performClick(); 
    } 

} 

की तरह एक पोस्ट में दो क्लिक आग है कि घटनाओं निकाल दिया गया आपके लिस्टव्यू एडाप्टर

+0

प्रश्न को सावधानीपूर्वक पढ़ें :) जब उपयोगकर्ता एक संपादन टेक्स्ट का चयन करता है, तो पूरा टेक्स्ट चुना जाता है और कीबोर्ड पॉप अप हो जाता है। यह वही है जो मैं चाहता हूं, लेकिन यह हमेशा ऐसा काम नहीं करता है। कभी-कभी (कीबोर्ड के बाद आमतौर पर दिखाई देता है) जब उपयोगकर्ता एक अलग संपादन टेक्स्ट का चयन करता है, तो यह पूरे पाठ का चयन नहीं करता है, लेकिन यह केवल नियंत्रण के बाईं ओर केंद्रित होता है और कर्सर के नीचे एक तीर प्रदर्शित होता है। –

+0

क्षमा करें अगर मैं पर्याप्त स्पष्ट नहीं था, तो अगर आपको लगता है कि आप इसे बेहतर बना सकते हैं तो कृपया प्रश्न संपादित करें। और अगर आपको कुछ और विवरण चाहिए तो मुझे बताएं। धन्यवाद –

+0

तो क्या आप पाठ के अंत में कर्सर को स्थानांतरित करना चाहते हैं? –

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