[英]How to know when the user is done with text entry on an EditText control?
我希望能夠知道用戶何時完成在 EditText 控件中輸入文本。 我想也許最好知道鍵盤何時關閉或類似的東西。 這是在 Android 應用程序上使用 Kotlin。 我不知道為什么很難找到這樣的基本答案。 也許我在搜索錯誤的問題(Android 開發新手)。
使用鍵盤關閉作為用戶完成輸入文本的指示器是一個壞主意(用戶可能會再次打開鍵盤以輸入更多文本)。 更好的解決方案是明確要求用戶表明他已完成輸入數據。
您可以使用“提交”按鈕。
您還可以將EditText
的android:imeOptions
設置為actionDone
並在EditText
上設置一個偵聽器。
editText.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(EditText v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
//do your stuff
return true;
}
return false;
}
});
更新- 假設鍵盤關閉,因為指示器不好,原因有幾個,
EditText
的焦點,或者您可以使用高度差來猜測軟鍵盤是打開還是關閉(大多數鍵盤偵聽器庫中使用的選項)。 但這些並不可靠,可能會在生產中中斷。TextWatcher
,否則堅持使用明確的確認選項。使用 onFocusChangeListener 了解用戶是否已完成添加文本並離開 textInput 焦點。 例子
editText?.onFocusChangeListener =
View.OnFocusChangeListener { _,
hasFocus ->
if (!hasFocus) {
// code to execute when EditText loses focus
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.