我正在嘗試使用多行編輯文本上的下一個按鈕查看鍵盤。但它不適合我。使用IMEOption多行EditText DONE或NEXT不能正常工作
1
A
回答
2
0
不要害怕,它可以做到。儘管下面的代碼完美地工作,但不幸的是我不記得我從哪裏得到完整的代碼,所以不能給予作者應有的功勞。
////////////Code to Hide SoftKeyboard on Enter (DONE) Press///////////////
editText.setRawInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD|InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
editText.setImeActionLabel("DONE",EditorInfo.IME_ACTION_DONE); //Set Return Carriage as "DONE"
editText.setImeOptions(EditorInfo.IME_ACTION_DONE);
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{
if (event == null) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
// Capture soft enters in a singleLine EditText that is the last EditText
// This one is useful for the new list case, when there are no existing ListItems
editText.clearFocus();
//hide SoftKeyboard
InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), 0);
}
else if (actionId == EditorInfo.IME_ACTION_NEXT) {
// Capture soft enters in other singleLine EditTexts
} else if (actionId == EditorInfo.IME_ACTION_GO) {
} else {
// Let the system handle all other null KeyEvents
return false;
}
}
else if (actionId == EditorInfo.IME_NULL) {
// Capture most soft enters in multi-line EditTexts and all hard enters;
// They supply a zero actionId and a valid keyEvent rather than
// a non-zero actionId and a null event like the previous cases.
if (event.getAction() == KeyEvent.ACTION_DOWN) {
// We capture the event when the key is first pressed.
} else {
// We consume the event when the key is released.
return true;
}
}
else {
// We let the system handle it when the listener is triggered by something that
// wasn't an enter.
return false;
}
return true;
}
});
用於傳遞聚焦到接着的EditText使用edit_text2.requestFocus()
並刪除隱藏SoftKeyboard代碼。
相關問題
- 1. EditText錯誤不能正常工作
- 2. JQuery when()。done()無法正常工作
- 3. PHP MySQL多行不能正常工作
- 4. OkHttp不能正常工作
- 5. findviewbyid不能正常工作
- 6. ImeOption做了不工作時的EditText裏面Cardview
- 7. Parse或QueryWithSubqueries不能正常工作(swift)
- 8. RadioButton不能正常工作
- 9. Python的多進程不能正常工作或拋出異常
- 10. 域名或webservice不能正常工作
- 11. Android:ProgressBar不能正常工作或顯示
- 12. SqlDataAdapter.Update或SqlCommandBuilder不能正常工作
- 13. drawLineGraphWithContext不能正常工作
- 14. SugarORM不能正常工作
- 15. Android edittext onEditorActionListener工作不正常?
- 16. haarcascade_frontalface_alt.xml不能正常工作
- 17. 公共功能不能正常工作
- 18. 不能正常工作使用jQuery
- 19. 使用jQuery的不能正常工作
- 20. 不能正常工作,而使用S7GraphView
- 21. sftp不能正常工作使用expect
- 22. EXE使用cx_freeze不能正常工作
- 23. 使用preg_replace不能正常工作
- 24. REGEXP使用MySQL不能正常工作
- 25. onClick Button不能正常工作
- 26. RPAD不能正常工作
- 27. math.Random不能正常工作
- 28. runOnUiThread不能正常工作
- 29. crontab不能正常工作?
- 30. 正常化unicode不能正常工作
它是如何「不工作」?如果按Next,它會做什麼?和一些代碼請? – josephus
[在2.3上使用完成的SoftInput操作標籤的多行EditText]的可能重複(http://stackoverflow.com/questions/5014219/multiline-edittext-with-done-softinput-action-label-on-2-3) –