按下“ENTER”时无法将焦点设置到下一个编辑文本

时间:2021-04-20 12:28:40

标签: android visual-studio request focus

我正在使用 Visual Studio 2019 开发一个 android 应用程序。我在很多帖子上搜索了很多关于这个问题的信息,但没有成功。

在连接屏幕中,用户必须使用管理员和密码登录:

enter image description here

这里是xml文件:

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:minWidth="25px"
android:minHeight="25px">

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="140dp"
    android:layout_marginBottom="0dp"
    android:src="@drawable/logo"
    android:id="@+id/img_accueil" />

<EditText
    style="@style/EditText_Connexion"
    android:hint="@string/utilisateur"
    android:background="@drawable/round_edit_text"
    android:id="@+id/txt_utilisateur"
    android:maxLines="1" 
    android:focusable="true"
    android:focusableInTouchMode="true"/>

<EditText
    style="@style/EditText_Connexion"
    android:inputType="textPassword"
    android:hint="Mot de passe"
    android:background="@drawable/round_edit_text"
    android:id="@+id/txt_mot_de_passe"        
    android:maxLines="1" 
    android:focusable="true"
    android:focusableInTouchMode="true"/>


<Button
    style="@style/Button_Orange"
    android:text="@string/button_connexion"
    android:id="@+id/button_connexion"/>

<Button
    style="@style/Button_Orange"
    android:text="Initialisation de la base"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/btnBddInit"
    android:layout_marginTop="10dp"/>    
    
<Button
    style="@style/Button_Orange"
    android:text="Quitter"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/btnQuitter"
    android:layout_marginTop="10dp"/>    

当用户在登录后按“ENTER”键时,焦点应该转到密码(mot de passe)EditText,而是转到“连接”按钮上:

    private void Txt_utilisateur_KeyPress(object sender, Android.Views.View.KeyEventArgs e)
    {
        if (e.Event.Action == KeyEventActions.Down && e.KeyCode == Keycode.Enter)
        {
            btn_connexion.ClearFocus();
            //txt_utilisateur.ClearFocus();
            //txt_motDePasse.ClearFocus();
            //btn_initBdd.ClearFocus();
            //btn_Quitter.ClearFocus();
            txt_motDePasse.RequestFocus();
            e.Handled = true;
            return;
        }
        else
        {
            e.Handled = false;
        }
    }

我尝试在请求焦点命令之后添加,但是没有用:

                InputMethodManager im = (InputMethodManager)GetSystemService(Context.InputMethodService);
                im.ShowSoftInput(tb_NumLot, ShowFlags.Implicit);

我找不到其他东西可以尝试,感谢您的帮助。

0 个答案:

没有答案