【问题标题】:can not focus on EditText which is in another Linearlayout无法专注于另一个 Linearlayout 中的 EditText
【发布时间】:2018-06-06 20:42:45
【问题描述】:

我在同一个 LinearLayout 中有 8 个 editText。我想点击取消按钮,将焦点设置为 edtNum。

(edtUnitNum.requestFocus();).

此命令运行不正确并将焦点设置为 edtSaveMony,但我希望将焦点设置为 edtunitnum。

总的来说,你不能专注于另一个Linearlayout中的EditText。

xml:

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <include layout="@layout/drawer" />

 
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="0.33"
                    android:focusable="true"
                    android:focusableInTouchMode="true"
                    android:orientation="horizontal">

                    <android.support.design.widget.TextInputLayout

                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="شماره واحد . . .">

                        <EditText
                            android:focusable="true"
                            android:focusableInTouchMode="true"
                            android:id="@+id/edt_Members_UnitNum"
                            android:layout_width="70dp"
                            android:layout_height="wrap_content"
                            android:layout_marginRight="10dp"
                            android:fontFamily="@font/yekan"
                            android:imeOptions="actionNext"
                            android:inputType="number"
                            android:maxLines="1"
                            android:textSize="12sp" />
                    </android.support.design.widget.TextInputLayout>

                    <android.support.design.widget.TextInputLayout
                        android:layout_width="wrap_content"
                        android:layout_height="55dp"
                        android:hint="نام مشترک . . .">

                        <EditText
                            android:id="@+id/edt_Members_Name"
                            android:layout_width="153dp"
                            android:layout_height="wrap_content"
                            android:fontFamily="@font/yekan"
                            android:imeOptions="actionNext"
                            android:inputType="text"
                            android:maxLines="1"
                            android:textSize="12sp" />
                    </android.support.design.widget.TextInputLayout>

                    <android.support.design.widget.TextInputLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="متراژ . . .">

                        <EditText
                            android:id="@+id/edt_Members_aria"
                            android:layout_width="45dp"
                            android:layout_height="wrap_content"
                            android:fontFamily="@font/yekan"
                            android:imeOptions="actionNext"
                            android:inputType="number"
                            android:maxLines="1"
                            android:textSize="12sp" />
                    </android.support.design.widget.TextInputLayout>

                    <android.support.design.widget.TextInputLayout
                        android:id="@+id/textInputLayout"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="تعداد . . .">

                        <EditText
                            android:id="@+id/edt_Members_Qty"
                            android:layout_width="40dp"
                            android:layout_height="wrap_content"
                            android:fontFamily="@font/yekan"
                            android:imeOptions="actionNext"
                            android:inputType="number"
                            android:maxLines="1"
                            android:textSize="12sp" />
                    </android.support.design.widget.TextInputLayout>

                </LinearLayout>


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="0.33"
                    android:orientation="horizontal">

                    <android.support.design.widget.TextInputLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="مبلغ ذخیره . . .">


                        <EditText
                            android:id="@+id/edt_Members_saveMoney"
                            android:layout_width="78dp"
                            android:layout_height="wrap_content"
                            android:layout_marginRight="10dp"
                            android:fontFamily="@font/yekan"
                            android:imeOptions="actionNext"
                            android:inputType="numberDecimal"
                            android:maxLines="1"
                            android:textSize="12sp" />
                    </android.support.design.widget.TextInputLayout>

                    <android.support.design.widget.TextInputLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:hint="تاریخ . . .">

                        <EditText
                            android:id="@+id/edt_Members_date"
                            android:layout_width="75dp"
                            android:layout_height="wrap_content"
                            android:fontFamily="@font/yekan"
                            android:imeOptions="actionNext"
                            android:inputType="none"
                            android:maxLines="1"
                            android:textSize="12sp" />
                    </android.support.design.widget.TextInputLayout>

                    <android.support.design.widget.TextInputLayout
                        android:layout_width="155dp"
                        android:layout_height="wrap_content"
                        android:hint="توضیحات . . .">

                        <EditText
                            android:id="@+id/edt_Members_desc"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:fontFamily="@font/yekan"
                            android:inputType="text"
                            android:maxLines="1"
                            android:textSize="12sp" />
                    </android.support.design.widget.TextInputLayout>


                </LinearLayout>

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

                    <Button
                        android:id="@+id/btn_Members_Insert"
                        android:layout_width="70dp"
                        android:layout_height="40dp"
                        android:layout_gravity="center"
                        android:background="@drawable/btn"
                        android:fontFamily="@font/yekan"
                        android:gravity="center"
                        android:text="ثبت"
                        android:textSize="18sp" />

                    <Button
                        android:id="@+id/btn_Members_Cancel"
                        android:layout_width="70dp"
                        android:layout_height="40dp"
                        android:layout_gravity="center"
                        android:background="@drawable/btn"
                        android:fontFamily="@font/yekan"
                        android:gravity="center"
                        android:text="انصراف"
                        android:textSize="16sp" />

                </LinearLayout>

            </LinearLayout>
</RelativeLayout>

java:

btncancel = (Button) findViewById(R.id.btn_Members_Cancel);
btnInsert = (Button) findViewById(R.id.btn_Members_Insert);
edtUnitNum = (EditText) findViewById(R.id.edt_Members_UnitNum);
edtSaveMoney = (EditText) findViewById(R.id.edt_Members_saveMoney);

  btnCancel.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            edtUnitNum.clearFocus();
            edtUnitNum.setFocusable(true);
            edtUnitNum.setFocusableInTouchMode(true);
            edtUnitNum.requestFocus();
        }
   });

【问题讨论】:

    标签: android android-edittext focus


    【解决方案1】:

    我已经尝试过你的代码,如果你删除它就可以正常工作

    android:focusableInTouchMode="true"
    

    来自父线性布局。事实上,为什么需要让透明/无边框布局成为焦点。

    【讨论】:

    • 是的,你是对的。谢谢,当我点击插入按钮(btnInsert)时它工作正常,但是为什么当你在最后一个EditText上按enter键键盘时它不起作用?我在edtDesc.setOnKeyListenermethod 上调用`btnInsert.callOnClick();`。在btnInsert.setonclick... 方法中使用edtUnitNum.requestFocus();
    • "enter" 键默认不起作用,您必须为该 editText 设置 OnKeyListener。看看这个stackoverflow.com/questions/4451374/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多