imeOptions "actionNext" प्रोग्रामेटिक रूप से - अगले फ़ील्ड पर कैसे जाएं?


92

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

इस प्रोग्राम को कैसे करें - जैसे कि कुछ इवेंट ट्रिगर के आधार पर अगले फील्ड पर जाने के लिए फोकस करें?

जवाबों:


192

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

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);

हाँ अन्यथा यह एक नई पंक्ति सम्मिलित करता है और उस पर कूदता है =)
Ilker Baltaci

2
यह ओपी के सवाल का जवाब कैसे देता है? यह स्वचालित रूप से अगले फ़ील्ड पर नहीं जाता है।
Hitmaneidos

27

अगले ध्यान देने योग्य क्षेत्र के लिए खोजें और आह्वान की तुलना में requestFocus()

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

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

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

20

बस सुझाव दें, यदि आप उपयोग कर रहे हैं

     EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE); 

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

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

       editTextSample.setSingleLine();

1
धन्यवाद। यह टी स्वीकार किए जाने वाले उत्तर होना चाहिए। बस setSleleLine () से पहले setImeOptions को कॉल करें।
हरमन

8

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

XML का उपयोग करना

<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सबसे उपयोगी वर्ग है जब आपको अपने एंड्रॉइड एप्लिकेशन में किसी भी प्रकार के उपयोगकर्ता इनपुट से निपटना पड़ता है।

IME_ACTION_DONE: यह क्रिया इनपुट के बिना कुछ भी करने के लिए "किया गया" ऑपरेशन करता है और IME बंद हो जाएगा।

 EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE);

अधिक जानकारी के लिए आप http://developer.android.com/reference/android/view/inputmethod/Editor/fo पर जा सकते हैं


1

कोटलिन लटकन

editText.imeOptions = EditorInfo.IME_ACTION_DONE

0
editText.setLines(1);
editText.setSingleLine(true);
editText.setImeOptions(EditorInfo.IME_ACTION_GO);

मैं इस समस्या को हल करता हूं कि सिंगल लाइन के साथ सुनिश्चित करें और एंटर क्लिक करने के बाद अगली एडिट टेक्स्ट पर जाएं


0

मेरे मामले में, एक imeOptions सेट करें समस्या को ठीक करें।

edtAnswer.maxLines = 1
edtAnswer.inputType = InputType.TYPE_CLASS_TEXT
edtAnswer.imeOptions = EditorInfo.IME_ACTION_NEXT

0

आप इससे कर सकते हैं

edittext.imeOptions = EditorInfo.IME_ACTION_DONE //for done button

या

edittext.imeOptions = EditorInfo.IME_ACTION_NEXT //for next button

लेकिन ... आपको यह समझने की आवश्यकता है कि यदि आप एडिटेक्स के लिए फिल्टर का उपयोग कर रहे हैं तो आपको सेट करने की आवश्यकता है

edittext.setSingleLine()
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.