好的我有一个EditTexts数组,我想循环遍历它们,所以如果某些EditText不包含文本,我想要求用户输入,我需要花费很多时间和很多阅读但我无法理解这是怎么回事。这么几个问题:
requestfocus()足够吗? (它不起作用 - 键盘没有显示)
我尝试使用OnFocusChangeListener而不是尝试显示键盘(showSoftInput(view,InputMethodManager.SHOW_IMPLICIT))如果再次关注editText它就无法正常工作。
有谁知道让我离开这个三角形的好例子?
答案 0 :(得分:1)
view.requestFocus()
还不够;
我正在使用此代码:
public static void setSoftwareKeyboardVisibility(Context context, View view, boolean value) {
final InputMethodManager manager = (InputMethodManager) context.getSystemService(Service.INPUT_METHOD_SERVICE);
if (value) {
view.requestFocus();
manager.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
} else {
// Any other not EditText View
manager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN);
view.requestFocus();
}
}
但你说standatr方法不起作用。尝试不在showSoftInput
方法中调用OnFocusChange
。将焦点设置在EditText上时调用它。
答案 1 :(得分:0)
我现在找不到解决问题的页面,但解决方案如下:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
答案 2 :(得分:0)
使用Intent emailIntent = new Intent(Intent.ACTION_SENDTO,
Uri.fromParts("mailto", "you@example.com", null));
emailIntent.putExtra(Intent.EXTRA_EMAIL, /*...*/);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, /*...*/);
emailIntent.putExtra(Intent.EXTRA_TEXT, /*...*/);
startActivityForResult(emailIntent, 1);
,其中editText是您的EditText视图,您可以将光标聚焦到该字段。
如果您想在对焦后显示键盘,请查看raukodraug here的答案。