EditText请求焦点

时间:2011-11-10 10:02:19

标签: android android-layout android-edittext

我正在设计一个登录页面:

UserName:  .....

Password:  .....

     LoginButton

当活动开始时,我希望焦点转到“UserName”文本框并显示键盘。

我使用以下代码:

    boolean checkFocus=user.requestFocus();
    Log.i("CheckFocus", ""+checkFocus);
    if(checkFocus==true)
    {
    InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    mgr.showSoftInput(user, InputMethodManager.SHOW_IMPLICIT);
    }

我不明白在编写此代码的位置,以便在活动开始时显示键盘,并且焦点位于“UserName”editText框中。有人可以指导我吗?

8 个答案:

答案 0 :(得分:165)

编程方式:

edittext.requestFocus();

通过xml:

<EditText...>
    <requestFocus />
</EditText>

或手动调用onClick方法。

答案 1 :(得分:25)

是的,我得到了答案..只需将manifest文件编辑为:

即可
        <activity android:name=".MainActivity"
        android:label="@string/app_name"
        android:windowSoftInputMode="stateAlwaysVisible" />

并在EditText.requestFocus() ..

中设置onCreate()

谢谢..

答案 2 :(得分:4)

youredittext.requestFocus()从活动中调用它

oncreate();

并在那里使用上面的代码

答案 3 :(得分:2)

它对我有用,如下所示。

ed1.requestFocus();

            return; //Faça um return para retornar o foco

答案 4 :(得分:0)

edittext.requestFocus()适用于我的ActivityFragment

答案 5 :(得分:0)

$('.best-photos-button').html("Add More Photos");

答案 6 :(得分:0)

设置为清单中的活动:

android:windowSoftInputMode="adjustResize"

设置焦点,当视图准备好时:

fun setFocus(view: View, showKeyboard: Boolean = true){
    view.post {
        if (view.requestFocus() && showKeyboard)
            activity?.openKeyboard() // call extension function
    }
}

答案 7 :(得分:0)

禁用软键盘(仅启用外部键盘),我通过移动 EditText 末尾的光标来修复它:

editText.setSelection(editText.getText().length)