Android 具有相同 ID 的自定义输入
Android Custom inputs having same IDs
我通过扩展 LinearLayout 并对齐 textview 和 editText 构建了自定义 editText 组件。我重用它们以编程方式构建多个输入。
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text_input_label"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginBottom="@dimen/very_small_margin"
android:layout_weight="1"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
android:textColor="@color/input_label_color" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/text_input_edit"
android:layout_width="match_parent"
android:layout_height="46dp"
android:layout_marginBottom="@dimen/small_margin"
android:drawablePadding="@dimen/small_margin"
android:background="@drawable/custom_input_bg"
android:paddingStart="@dimen/default_margin"
android:paddingEnd="@dimen/small_margin"
android:paddingTop="@dimen/small_margin"
android:paddingBottom="@dimen/small_margin"/>
</merge>
问题是,通过这种呈现输入的方式,我最终得到了共享相同 ID 的 editText,当我离开包含它们的片段并返回时,editText 都具有相同的值。即使将他们的 ID 设置为 random int 也不起作用。
我能做什么?
感谢您提供任何建议或帮助。
我已将 id 定义为 View.NO_ID
而且现在看来问题已经解决了
我通过扩展 LinearLayout 并对齐 textview 和 editText 构建了自定义 editText 组件。我重用它们以编程方式构建多个输入。
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text_input_label"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginBottom="@dimen/very_small_margin"
android:layout_weight="1"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body1"
android:textColor="@color/input_label_color" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/text_input_edit"
android:layout_width="match_parent"
android:layout_height="46dp"
android:layout_marginBottom="@dimen/small_margin"
android:drawablePadding="@dimen/small_margin"
android:background="@drawable/custom_input_bg"
android:paddingStart="@dimen/default_margin"
android:paddingEnd="@dimen/small_margin"
android:paddingTop="@dimen/small_margin"
android:paddingBottom="@dimen/small_margin"/>
</merge>
问题是,通过这种呈现输入的方式,我最终得到了共享相同 ID 的 editText,当我离开包含它们的片段并返回时,editText 都具有相同的值。即使将他们的 ID 设置为 random int 也不起作用。
我能做什么? 感谢您提供任何建议或帮助。
我已将 id 定义为 View.NO_ID 而且现在看来问题已经解决了