2010-08-11 10 views
58

लेआउट एक्सएमएल में android:imeOptions="actionNext" निर्दिष्ट करना संभव है जो वर्चुअल कीबोर्ड में Next बटन जोड़ता है और उस पर क्लिक करके - फोकस अगले फ़ील्ड पर कूदता है।imeOptions "actionNext" प्रोग्रामेटिक रूप से - अगले फ़ील्ड पर कैसे कूदें?

इस प्रोग्रामेटिक तरीके से कैसे करें - उदा। अगले कार्यक्रम में जाने के लिए कुछ घटना ट्रिगर फोकस के आधार पर?

उत्तर

136

आप आईएमई विकल्पों के लिए EditorInfo कक्षा से स्थिरांक का उपयोग कर सकते हैं। की तरह,

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT); 
+0

हां अन्यथा यह एक नई लाइन डालता है और उस पर कूदता है =) –

20

अगले फोकस करने योग्य फ़ील्ड के लिए खोजें और requestFocus() को आमंत्रित करने से पहले।

TextView nextField = (TextView)currentField.focusSearch(View.FOCUS_RIGHT); 
nextField.requestFocus(); 
+1

यह इस सवाल के शीर्षक के संदर्भ में एक सही जवाब नहीं है, लेकिन यह तकनीकी रूप से एक वैध जवाब है। उत्तर के नीचे अधिक उपयुक्त है। –

+5

@ सेनग्लोवर ओह, ** नीचे ** शब्द इतना व्यक्तिपरक है ... –

+2

@ सेनग्लोवर आपको कभी *** *** जैसे शब्दों का उपयोग नहीं करना चाहिए क्योंकि उत्तरों की स्थिति बदलती रहती है। – Nike15

7

वहाँ हमेशा डिफ़ॉल्ट आभासी QWERTY कुंजीपटल में उपलब्ध कुंजी से अलग अतिरिक्त कुंजियों को जोड़ने की जरूरत है।

एक्सएमएल

<EditText android:text="@+id/EditText01" 
android:id="@+id/EditText01" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent" 
android:imeOptions="actionDone"/> 

By Programmatic Way

एक EditorInfo सबसे अधिक उपयोगी वर्ग आप अपने Android आवेदन में उपयोगकर्ता इनपुट के किसी भी प्रकार से निपटने के लिए जब है का उपयोग करना।

IME_ACTION_DONE: यह क्रिया इनपुट करने के लिए कुछ भी नहीं किया गया है और आईएमई बंद हो जाएगा।

EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE); 

अधिक जानकारी के लिए आप, http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html

8

बस सुझाव पर जा सकते हैं अगर आप

 EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE); 

उपयोग कर रहे हैं यह, काम नहीं करता है सुनिश्चित करें कि आपके EditText एक पंक्ति उपयोग कर रहा है।

उदाहरण के लिए:

 editTextSample.setSingleLine(); 
संबंधित मुद्दे