कोटलिन समाधान
कोटलिन में छिपा कीबोर्ड + किए गए कार्रवाई को संभालने का सीधा तरीका है:
// Set action
edittext.setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
// Hide Keyboard
val inputMethodManager = context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(windowToken, 0)
true
}
false
}
कोटलिन एक्सटेंशन
edittext.onDone {/*action*/}
अपने मुख्य कोड में कॉल करने के लिए इसका उपयोग करें । इसे और अधिक पठनीय और बनाए रखने योग्य बनाता है
edittext.onDone { edittext.hideKeyboard() }
fun View.hideKeyboard() {
val inputMethodManager = context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(windowToken, 0)
}
fun EditText.onDone(callback: () -> Unit) {
// These lines optional if you don't want to set in Xml
imeOptions = EditorInfo.IME_ACTION_DONE
maxLines = 1
setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
callback.invoke()
true
}
false
}
}
अतिरिक्त कीबोर्ड एक्सटेंशन
यदि आप कीबोर्ड (शो, क्लोज़, फ़ोकस) के साथ काम करना अधिक सरल बनाना चाहते हैं: तो इस पोस्ट को पढ़ें
यदि कोड में नहीं हैं, तो इन विकल्पों को अपने संपादन Xml में जोड़ना न भूलें
<EditText ...
android:imeOptions="actionDone"
android:inputType="text"/>
inputType="textMultiLine"
समर्थन चाहिए ? इस पोस्ट को पढ़ें और Xml में imeOptions
या न जोड़ेंinputType