Android EditText requestfocus() dynamic does not work properly

Next, I have multiple effects on edittexts, and I add the value nextfocus to the XML

However, according to the status of the minor check box value, whether an edited text is visible or invisible. Therefore, I need to focus on it after yyyy editext is dynamic. However, the dynamic requestfocus() does not work properly

Click what needs to be done next

This email view is visible only if the under 18 check box is not selected

 dobYearEt.setOnEditorActionListener(new EditText.OnEditorActionListener() {

        @Override

        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            Log.i("focus","on yyyy");
            if (actionId == EditorInfo.IME_ACTION_DONE ||
              actionId == EditorInfo.IME_ACTION_NEXT) {
                Log.i("focus",isUnderAge+"");
                if(isUnderAge){
                    username_reg_ev_dob_row.setFocusableInTouchMode(true);
                    username_reg_ev_dob_row.requestFocus();
                }else{
// NOTHING HAPPENS
//                    email_ev.setFocusableInTouchMode(true);
//                    dobYearEt.clearFocus();
                  email_ev.requestFocus();
//                    InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
//                    mgr.showSoftInput(email_ev, InputMethodManager.SHOW_IMPLICIT);
                }

                return false;
            }

Xml

  <ScrollView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/register"
                android:layout_marginLeft="@dimen/sign_up_left_right_margin"
                android:layout_marginRight="@dimen/sign_up_left_right_margin"
                android:layout_marginTop="@dimen/sign_up_user_name_top_margin">

                <!--<RelativeLayout-->
                <!--android:layout_width="match_parent"-->
                <!--android:layout_height="wrap_content">-->
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">


                    <LinearLayout
                        android:id="@+id/name_container"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal"
                        android:weightSum="3">

                        <EditText
                            android:id="@+id/firstname_ev"
                            style="@style/RegisterViewStyle"
                            android:hint="  FIRST NAME:"
                            android:textCursorDrawable="@null"
                            android:nextFocusForward="@+id/middle_ev"
                            android:nextFocusRight="@+id/middle_ev"
                            android:nextFocusDown="@+id/middle_ev"
                            android:nextFocusLeft="@+id/middle_ev"
                            android:nextFocusUp="@+id/middle_ev"/>

                        <View
                            android:layout_width="@dimen/sign_up_names_sep_width"
                            android:layout_height="wrap_content"/>

                        <EditText
                            android:id="@+id/middle_ev"
                            style="@style/RegisterViewStyle"
                            android:hint="  MIDDLE INITIAL:"
                            android:textCursorDrawable="@null"
                            android:nextFocusForward="@+id/lastname_ev"
                            android:nextFocusRight="@+id/lastname_ev"
                            android:nextFocusDown="@+id/lastname_ev"
                            android:nextFocusLeft="@+id/lastname_ev"
                            android:nextFocusUp="@+id/lastname_ev"/>

                        <View
                            android:layout_width="@dimen/sign_up_names_sep_width"
                            android:layout_height="wrap_content"/>

                        <EditText
                            android:id="@+id/lastname_ev"
                            style="@style/RegisterViewStyle"
                            android:hint="  LAST NAME:"
                            android:textCursorDrawable="@null"
                            android:nextFocusForward="@+id/dob_mm_et"
                            android:nextFocusRight="@+id/dob_mm_et"
                            android:nextFocusDown="@+id/dob_mm_et"
                            android:nextFocusLeft="@+id/dob_mm_et"
                            android:nextFocusUp="@+id/dob_mm_et"
                            />

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal">


                        <Check@R_532_2419@
                            android:id="@+id/under18_check_@R_532_2419@"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:buttonTint="@color/raffle_blue_color"
                            />

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:id="@+id/under18_tv"
                            android:text="I'm under 18 and/or don't have an email?"/>

                    </LinearLayout>

                    <LinearLayout
                        android:id="@+id/dob_parent_layout"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal">
                        <!--android:weightSum="2"-->

                        <LinearLayout
                            style="@style/RegisterViewStyle2"
                            android:id="@+id/dob_container"
                            android:layout_width="0dp"
                            android:layout_height="match_parent"
                            android:layout_marginRight="2dp"
                            android:layout_marginTop="@dimen/sign_up_field_sep_margin"
                            android:layout_weight="1"
                            android:orientation="horizontal">
                            <!--style="@style/RegisterViewStyle2"-->
                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="DOB:"
                                android:textColor="@color/edit_text_hint_color"
                                android:id="@+id/dob_label_tv"
                                />

                            <!--<EditText-->
                                <!--android:id="@+id/dob_dd_et"-->
                                <!--android:layout_width="wrap_content"-->
                                <!--android:layout_height="wrap_content"-->
                                <!--android:background="@android:color/transparent"-->
                                <!--android:hint="_ _"-->
                                <!--android:textCursorDrawable="@null"-->
                                <!--android:inputType="number"-->
                                <!--android:maxLength="2"-->
                                <!--android:nextFocusForward="@+id/dob_mm_et"-->
                                <!--android:nextFocusRight="@+id/dob_mm_et"-->
                                <!--android:nextFocusDown="@+id/dob_mm_et"-->
                                <!--android:nextFocusLeft="@+id/dob_mm_et"-->
                                <!--android:nextFocusUp="@+id/dob_mm_et"/>-->

                            <EditText
                                android:id="@+id/dob_mm_et"
                                style="@style/RegisterViewStyle"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:background="@android:color/transparent"
                                android:hint="MM"
                                android:textCursorDrawable="@null"
                                android:inputType="number"
                                android:maxLength="2"
                                android:nextFocusForward="@+id/dob_dd_et"
                                android:nextFocusRight="@+id/dob_dd_et"
                                android:nextFocusDown="@+id/dob_dd_et"
                                android:nextFocusLeft="@+id/dob_dd_et"
                                android:nextFocusUp="@+id/dob_dd_et"/>


                            <TextView
                                android:textColor="@color/edit_text_hint_color"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text=" / "/>

                            <!--<EditText-->
                                <!--android:id="@+id/dob_mm_et"-->
                                <!--android:layout_width="wrap_content"-->
                                <!--android:layout_height="wrap_content"-->
                                <!--android:background="@android:color/transparent"-->
                                <!--android:hint="_ _"-->
                                <!--android:inputType="number"-->
                                <!--android:textCursorDrawable="@null"-->
                                <!--android:maxLength="2"-->
                                <!--android:nextFocusForward="@+id/dob_yyyy_et"-->
                                <!--android:nextFocusRight="@+id/dob_yyyy_et"-->
                                <!--android:nextFocusDown="@+id/dob_yyyy_et"-->
                                <!--android:nextFocusLeft="@+id/dob_yyyy_et"-->
                                <!--android:nextFocusUp="@+id/dob_yyyy_et"/>-->
                            <EditText
                                android:id="@+id/dob_dd_et"
                                style="@style/RegisterViewStyle"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:background="@android:color/transparent"
                                android:hint="DD"
                                android:inputType="number"
                                android:textCursorDrawable="@null"
                                android:maxLength="2"
                                android:nextFocusForward="@+id/dob_yyyy_et"
                                android:nextFocusRight="@+id/dob_yyyy_et"
                                android:nextFocusDown="@+id/dob_yyyy_et"
                                android:nextFocusLeft="@+id/dob_yyyy_et"
                                android:nextFocusUp="@+id/dob_yyyy_et"/>


                            <TextView
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text=" / "
                                android:textColor="@color/edit_text_hint_color"/>


                            <EditText
                                style="@style/RegisterViewStyle"
                                android:id="@+id/dob_yyyy_et"
                                android:layout_width="wrap_content"
                                android:textCursorDrawable="@null"
                                android:layout_height="wrap_content"
                                android:background="@android:color/transparent"
                                android:hint="YYYY"
                                android:inputType="number"
                                android:maxLength="4"
                                />
                            <!--android:nextFocusForward="@+id/email_ev"-->
                            <!--android:nextFocusRight="@+id/email_ev"-->
                            <!--android:nextFocusDown="@+id/email_ev"-->
                            <!--android:nextFocusLeft="@+id/email_ev"-->
                            <!--android:nextFocusUp="@+id/email_ev"-->
                        </LinearLayout>

                        <EditText
                            android:id="@+id/email_ev"
                            style="@style/RegisterViewStyle"
                            android:layout_width="0dp"
                            android:layout_height="match_parent"
                            android:layout_marginTop="@dimen/sign_up_field_sep_margin"
                            android:layout_weight="1"
                            android:hint="  EMAIL:"
                            android:textCursorDrawable="@null"

                            />
                        <!--android:nextFocusForward="@+id/password_reg_ev"-->
                        <!--android:nextFocusRight="@+id/password_reg_ev"-->
                        <!--android:nextFocusDown="@+id/password_reg_ev"-->
                        <!--android:nextFocusLeft="@+id/password_reg_ev"-->
                        <!--android:nextFocusUp="@+id/password_reg_ev"-->
                        <!--style="@style/RegisterViewStyle2"-->
                        <EditText
                            android:id="@+id/username_reg_ev_dob_row"
                            style="@style/RegisterViewStyle"
                            android:layout_width="0dp"
                            android:layout_height="match_parent"
                            android:layout_marginTop="@dimen/sign_up_field_sep_margin"
                            android:layout_weight="1"
                            android:hint="  USERNAME:"
                            android:textCursorDrawable="@null"
                            android:visibility="gone"
                            android:nextFocusForward="@+id/password_reg_ev"
                            android:nextFocusRight="@+id/password_reg_ev"
                            android:nextFocusDown="@+id/password_reg_ev"
                            android:nextFocusLeft="@+id/password_reg_ev"
                            android:nextFocusUp="@+id/password_reg_ev"/>

                    </LinearLayout>

                    <EditText
                        android:id="@+id/username_reg_ev"
                        style="@style/RegisterViewStyle2"
                        android:layout_below="@+id/email_ev"
                        android:layout_marginTop="@dimen/sign_up_field_sep_margin"
                        android:hint="  USERNAME:"
                        android:textCursorDrawable="@null"
                        android:nextFocusForward="@+id/password_reg_ev"
                        android:nextFocusRight="@+id/password_reg_ev"
                        android:nextFocusDown="@+id/password_reg_ev"
                        android:nextFocusLeft="@+id/password_reg_ev"
                        android:nextFocusUp="@+id/password_reg_ev"/>

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal">

                        <EditText
                            android:id="@+id/password_reg_ev"
                            style="@style/RegisterViewStyle2"
                            android:layout_below="@+id/username_reg_ev"
                            android:layout_marginTop="@dimen/sign_up_field_sep_margin"
                            android:hint="  PASSWORD:"
                            android:layout_marginRight="2dp"
                            android:textCursorDrawable="@null"
                            android:inputType="textPassword"
                            android:nextFocusForward="@+id/confirm_password_reg_ev"
                            android:nextFocusRight="@+id/confirm_password_reg_ev"
                            android:nextFocusDown="@+id/confirm_password_reg_ev"
                            android:nextFocusLeft="@+id/confirm_password_reg_ev"
                            android:nextFocusUp="@+id/confirm_password_reg_ev"/>

                        <EditText
                            android:id="@+id/confirm_password_reg_ev"
                            style="@style/RegisterViewStyle2"
                            android:layout_below="@+id/password_reg_ev"
                            android:layout_marginTop="@dimen/sign_up_field_sep_margin"
                            android:hint="  CONFIRM PASSWORD:"
                            android:textCursorDrawable="@null"
                            android:inputType="textPassword"
                            android:nextFocusForward="@+id/group_code_reg_ev"
                            android:nextFocusRight="@+id/group_code_reg_ev"
                            android:nextFocusDown="@+id/group_code_reg_ev"
                            android:nextFocusLeft="@+id/group_code_reg_ev"
                            android:nextFocusUp="@+id/group_code_reg_ev"/>
                    </LinearLayout>

                    <EditText
                        android:id="@+id/group_code_reg_ev"
                        style="@style/RegisterViewStyle2"
                        android:layout_below="@+id/confirm_password_reg_ev"
                        android:layout_marginTop="@dimen/sign_up_field_sep_margin"
                        android:textCursorDrawable="@null"
                        android:hint="  GROUP CODE(OPTIONAL):"/>

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal">

                        <Check@R_532_2419@
                            android:id="@+id/terms_conditions_signup_check@R_532_2419@"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:buttonTint="@color/raffle_blue_color"
                            />

                        <TextView
                            android:id="@+id/terms_conditions_register_message"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:text="@string/terms_conditions"/>

                    </LinearLayout>

                    <RelativeLayout
                        android:id="@+id/register_btn_rl"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/registration_message"
                        android:layout_marginBottom="6dp"
                        android:layout_marginTop="@dimen/sign_up_btn_top_margin"
                        android:background="@color/raffle_blue_color">

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_centerHorizontal="true"
                            android:layout_centerVertical="true"
                            android:id="@+id/register_tv"
                            android:padding="6dp"
                            android:text="REGISTER"
                            android:textColor="@android:color/white"
                            android:textSize="@dimen/sign_up_edit_text_size"/>
                    </RelativeLayout>
                </LinearLayout>
            </ScrollView>

I mentioned various solutions, but they didn't work

Set next EditText focused and editable on KEY_ DOWN

requestFocus not working

EditText request focus not working

requestFocus not working

resolvent:

What happened was that I returned false from oneditoraction, so the default editor action was also executed back and forth, and the focus was immediately removed from the e-mail EditText. Now I returned true and did not execute the default action, and now it can work normally

dobYearEt.setOnEditorActionListener(new EditText.OnEditor ActionListener() {

        @Override

        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            Log.i("focus","on yyyy");
            if (actionId == EditorInfo.IME_ACTION_DONE ||
              actionId == EditorInfo.IME_ACTION_NEXT) {
                Log.i("focus",isUnderAge+"");
                if(isUnderAge){
                    username_reg_ev_dob_row.setFocusableInTouchMode(true);
                    username_reg_ev_dob_row.requestFocus();
                }else{

                  email_ev.requestFocus();

                }
                  return true ; // Now WORKS
               // return false;
            }

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>