EditText,焦点,软键盘烦恼

时间:2013-11-03 10:18:56

标签: android focus android-edittext

好的我有一个EditTexts数组,我想循环遍历它们,所以如果某些EditText不包含文本,我想要求用户输入,我需要花费很多时间和很多阅读但我无法理解这是怎么回事。这么几个问题:

requestfocus()足够吗? (它不起作用 - 键盘没有显示)

我尝试使用OnFocusChangeListener而不是尝试显示键盘(showSoftInput(view,InputMethodManager.SHOW_IMPLICIT))如果再次关注editText它就无法正常工作。

有谁知道让我离开这个三角形的好例子?

3 个答案:

答案 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的答案。