如何获得与编辑文本相关的TextInputLayout?

Mat*_*iRC 5 android android-layout android-edittext butterknife android-textinputlayout

我在不同的TextInputLayouts中有许多编辑文本,如何获取TextInputLayout我正在使用的编辑文本在哪里?

范例:

@BindView(R.id.eT)
EditText eT;

@BindView(R.id.eT2)
EditText eT2;

@BindView(R.id.text_input_layout)
TextInputLayout textInputLayout;

@BindView(R.id.text_input_layout2)
TextInputLayout textInputLayout2;
Run Code Online (Sandbox Code Playgroud)

我想要像eT.getTextInputLayout并获取textInputLayout

xml的提取:

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

                <Spinner
                    android:id="@+id/spinner"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAlignment="center" />

                <android.support.design.widget.TextInputLayout
                    android:id="@+id/text_input_layout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout"
                    app:errorTextAppearance="@style/error_appearance"
                    app:hintAnimationEnabled="true"
                    app:errorEnabled="true">

                <EditText
                    android:id="@+id/eT"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:ems="10"
                    android:inputType="number" />

                </android.support.design.widget.TextInputLayout>

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="horizontal"
                tools:layout_editor_absoluteX="8dp"
                tools:layout_editor_absoluteY="0dp">

                <TextView
                    android:id="@+id/tV"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:labelFor="@+id/spinne2"
                    android:text="@string/tarjeta" />

                <Spinner
                    android:id="@+id/spinner2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAlignment="center" />

            </LinearLayout>

            <android.support.design.widget.TextInputLayout
                android:id="@+id/text_input_layout2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout"
                app:errorTextAppearance="@style/error_appearance"
                app:hintAnimationEnabled="true"
                app:errorEnabled="true">

                <EditText
                    android:id="@+id/eT2"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:ems="10"
                    android:inputType="number" />
            </android.support.design.widget.TextInputLayout>
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我想通过编辑文本eT来获取例如text_input_layout,以处理TIL中的错误(我在其他模块中执行此操作,因此我不想将编辑文本和TIL传递给此模块)。

Lut*_*kin 6

@萨米伊萨是对的

edittext.getParent().getParent() 
Run Code Online (Sandbox Code Playgroud)

返回 TextInputLayout


zul*_*hah 0

如果 View 位于 TextInputLayout 内,您可以调用getParentForAccessibilityView或EditText来获取TextInputLayout该 View 的引用

  • 我有一个包含 TextInputLayout 的 FrameLayout,它包含一个 TextInputEditText。当我调用 TextInputLayout.getParentForAccessibility() 时,它返回 FrameLayout。最后我用一种不优雅的方式解决了,但是有效。TextInputLayout.getParent().getParent()。我并不为此感到自豪:) (3认同)
  • 不起作用。对于每个 TextView,getParentForAccessibility 返回一个 Layout 组件(FrameLayout 或 ScrollLayout) (2认同)