Cod*_*ike 4 navigation android-layout android-linearlayout android-fragments kotlin
我是 Android 开发和 Kotlin 的新手。我遇到了这个让我感到困惑的问题。
我在片段 A 中有 2 个 EditText 元素,每个元素都有不同的文本。当我使用后退按钮导航到片段 B 并再次返回到片段 A 时,两个 EditText 控件显示相同的值?!我不明白为什么。
屏幕转储:
第 3 步 - 从片段 B 返回导航后,片段 A 现在具有相同的值
该解决方案具有 2 个片段(片段 A 和片段 B)的单一活性。解决方案可从 Github 获得:https : //github.com/MIT-bits/singleactivity
我使用 NavGraph 在片段 A 和 B 之间导航。
片段 A 正在重用带有 EditText 的 XML 布局文件 (custom_view.xml)。每个 editText 值都在 Fragment A onViewCreated 方法中设置(见下文)
片段.kt
val data = arrayOf("Text A", "Text B", "Text C")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
view1.editText.setText(data[0])
view2.editText.setText(data[1])
}
Run Code Online (Sandbox Code Playgroud)
片段_a.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".AFragment">
<LinearLayout
android:id="@+id/createWhatAboutLinearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include android:id="@+id/view1" layout="@layout/custom_view"></include>
<include android:id="@+id/view2" layout="@layout/custom_view"></include>
</LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
custom_view.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:background="#999"
android:textSize="18sp"
android:textColor="#111"
android:typeface="normal"
android:layout_margin="20dp"
android:padding="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Text" />
</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
有人能看到我做错了什么或遗漏了什么吗?
任何输入都是有价值的...
android:saveEnabled="false"在 EditText 中添加属性
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:background="#999"
android:textSize="18sp"
android:textColor="#111"
android:typeface="normal"
android:layout_margin="20dp"
android:padding="10dp"
android:saveEnabled="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Text" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
637 次 |
| 最近记录: |