मैं अपने UI को सहज होना पसंद करता हूं; प्रत्येक स्क्रीन को स्वाभाविक रूप से और विनीत रूप से उपयोगकर्ता को ऐप में अगले चरण पर मार्गदर्शन करना चाहिए। इस पर रोक लगाते हुए, मैं चीजों को यथासंभव भ्रमित और भ्रमित करने का प्रयास करता हूं।
मजाक कर रहा हूं :-)
मुझे तीन TableRowएस मिले हैं, जिनमें से प्रत्येक में केवल पढ़ने योग्य और गैर-फोकस करने योग्य EditText नियंत्रण है और फिर इसके दाईं ओर एक बटन है। प्रत्येक बटन एक ही गतिविधि शुरू करता है लेकिन एक अलग तर्क के साथ। उपयोगकर्ता वहां चयन करता है और उप-गतिविधि खत्म हो जाती है, EditTextजो उपयोगकर्ता के चयन के साथ उपयुक्त है ।
यह क्लासिक कैस्केडिंग मान तंत्र है; प्रत्येक चयन अगले चयन के लिए उपलब्ध विकल्पों को बताता है, आदि। इस प्रकार मैं अगली पंक्तियों में से प्रत्येक पर दोनों नियंत्रणों को अक्षम कर रहा हूं जब तक कि वर्तमान पंक्ति पर EditText का मान नहीं होता है।
इस वरीयता क्रम में मुझे दो में से एक काम करने की आवश्यकता है:
- जब एक बटन पर क्लिक किया जाता है, तो फ़ोकस को अलग बटन पर सेट किए बिना तुरंत फोकस हटा दें
- गतिविधि शुरू होने पर पहले बटन पर ध्यान केंद्रित करें
उप-गतिविधि रिटर्न के बाद समस्या प्रकट होती है; जो बटन क्लिक किया गया था, वह फोकस बनाए रखता है।
पुन :: # 1 ऊपर - वहाँ एक removeFocus()विधि, या कुछ इसी तरह प्रतीत नहीं होता है
पुन: # 2 ऊपर - मैं requestFocus()अगली पंक्ति पर बटन पर ध्यान केंद्रित करने के लिए सेट करने के लिए उपयोग कर सकता हूं , और यह सब-एक्टिविटी रिटर्न के बाद काम करता है, लेकिन किसी कारण से यह पैरेंट गतिविधि में काम नहीं करता है onCreate()।
मुझे किसी भी दिशा में यूआई स्थिरता की आवश्यकता है - या तो कोई बटन उप-गतिविधि समाप्त होने के बाद फोकस नहीं करता है या प्रत्येक बटन किसी भी चयन से पहले बहुत पहले (और केवल) सक्रिय बटन सहित तर्क प्रवाह में अपनी जगह पर ध्यान केंद्रित करता है।