2012-01-25 13 views
48

पर अगली बटन इश्यू मुझे समस्या का सामना करना पड़ रहा है, मेरे पास उपयोगकर्ता नाम & गतिविधि पर पासवर्ड फ़ील्ड हैं, अब जब मैं उपयोगकर्ता नाम कीबोर्ड पर क्लिक करता हूं लेकिन उस पर कोई अगला बटन नहीं होता है और मैं इस में कीबोर्ड के माध्यम से अगले Edittext नियंत्रण में नहीं जा सकता केस, कीबोर्ड स्क्रीनशॉट में संलग्न होने के रूप में इसमें प्रवेश बटन प्रदर्शित करता है जो इसकी ऊंचाई बढ़ाता है,एंड्रॉइड कीबोर्ड एडिटटेक्स्ट

कोई भी मुझे मार्गदर्शन करता है कि इस समस्या का समाधान क्या है (edittext पर अगला बटन प्रदर्शित करने के लिए)?

किसी भी मदद की सराहना की जाएगी enter image description here

मेरे कोड

txtUserid = (EditText)findViewById(R.id.txtUserID); 
     txtUserPasword = (EditText)findViewById(R.id.txtPassword); 

     txtUserid.setNextFocusDownId(R.id.txtPassword); 
     txtUserPasword.setNextFocusDownId(R.id.btnLogin); 

उत्तर

29

कोड आपके द्वारा प्रदान की अपनी लाइनों के नीचे इस पंक्तियां जोड़ें:

txtUserid.setOnKeyListener(new OnKeyListener() { 

    public boolean onKey(View v, int keyCode, KeyEvent event) { 
      // If the event is a key-down event on the "enter" button 
      if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
       (keyCode == KeyEvent.KEYCODE_ENTER)) 
      { 
       // Perform action on Enter key press 
       txtUserid.clearFocus(); 
       txtUserPasword.requestFocus(); 
       return true; 
      } 
      return false; 
    } 
}); 

txtUserPasword.setOnKeyListener(new OnKeyListener() { 

    public boolean onKey(View v, int keyCode, KeyEvent event) { 

      if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
        (keyCode == KeyEvent.KEYCODE_ENTER)) 
      { 
       // Perform action on Enter key press 
       // check for username - password correctness here 
       return true; 
      } 
      return false; 
    } 
}); 
+0

धन्यवाद, यह edittext ऊंचाई बढ़ती बंद कर दिया, लेकिन अभी भी है मैं अगले editext पर जाने का कोई तरीका नहीं है :( – UMAR

+0

कृपया मेरे संपादित उत्तर की जांच करें। txtUserid के onLeyistener में लाइन बदल दी गई हैं। – Hiral

+0

धन्यवाद यह काम किया! स्मार्टवर्क के लिए – UMAR

47

अपने लेआउट में, बस सेट एक्सएमएल आपके पहले तीन टेक्स्ट बॉक्स औरके लिए android:imeOptions="actionNext" विशेषताएँ अंतिम के लिए।

More Examples

+1

मैंने इसे edittext पर उपयोग किया है, लेकिन मुझे नहीं पता कि यह क्यों काम नहीं करता है। :( – UMAR

+0

दूसरा लिंक टूटा हुआ है। – slott

+0

हाँ क्योंकि एंड्रॉइड की डेवलपर साइट अपडेट की गई है .. हो सकता है कि –

5

अपने EditText, केवल 1 रेखा है आपके XML पर विशेषता android:singleLine="true" जोड़ने के लिए माना जाता है, तो उस कुंजी दर्ज हटाने और अगला/हो गया बटन के साथ बदलना होगा। लेआउट एक्सएमएल में EditText टैग करने के लिए singleLine = "true" ..

+0

कोई कारण नहीं है, आपके उत्तर के लिए धन्यवाद :) – UMAR

1

बस एंड्रॉयड जोड़ें। अगला कुंजी दिखाएगा और अगले फ़ील्ड पर भी ध्यान केंद्रित करेगा। इस विशेषता को

+0

एकल लाइन मेरी समस्या का समाधान करती है –

+0

यह बहिष्कृत है। 'एंड्रॉइड का उपयोग करें: maxLines =" 1 "' बदले – Prabs

95

अपने xml पर android:singleLine="true" android:nextFocusDown="@+id/textView2" जोड़ें:

+2

यह मेरे लिए काम करता है, हालांकि यह ध्यान रखना महत्वपूर्ण हो सकता है कि यदि आप एंड्रॉइड सेट करते हैं: imeOptions = "actionNext", तो यह इस उत्तर में उल्लिखित विशेषताओं को ओवरराइड करेगा – user1549672

+2

यदि आप उपयोग करते हैं एंड्रॉइड: सिंगललाइन = "सच्चा" का अर्थ है कि कुंजीपैड – prabu

+2

पर "अगला" बटन दिखाई देने के लिए पर्याप्त अच्छा है, यह मेरे लिए काम करता है जब मैं 'एंड्रॉइड: imeOptions = "actionNext" से छुटकारा पाता हूं "' –

1

बस एंड्रॉयड जोड़ें: singleLine = "true" आपको लगता है कि

2

के लिए कि कोड की जरूरत नहीं है एक और सबसे अच्छा समाधान होगा:

android:singleLine="true" 
android:imeOptions="next" 
+0

"अगला" एक त्रुटि उत्पन्न करता है: "त्रुटि: (48, 45) स्ट्रिंग प्रकारों की अनुमति नहीं है ('imeOptions' पर 'अगले' मान के साथ)।"। यह "actionNext" होना चाहिए। और एंड्रॉइड: सिंगललाइन = "सच" बहिष्कृत है। एंड्रॉइड का प्रयोग करें: इसके बजाय maxLines = "1"। – jk7

2

अपने एक्सएमएल लेआउट को जोड़ें,

मान लीजिए कि आप पंक्ति में 4 एडिटेक्स्ट चाहते हैं तो पहले तीन editext u se नीचे टी,

android:imeOptions="actionNext" 

और पिछले एक editext यू सेट

android:imeOptions="actionDone" 

यू जोड़ने लाइन तो जोड़ने के लिए, आपके उत्तर के लिए प्रयोग करें

android:singleLine="true" 
+0

विचित्र रूप से पर्याप्त मैक्सलाइन = "1" ने मेरे गैलेक्सी 4 पर काम नहीं किया था, सिंगललाइन = "सच्चाई" – user330844

+0

सिंगललाइन = "सच" का उपयोग करना पड़ा, लेकिन इसके कामकाजी ब्रो, –

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