gpt4 book ai didi

java - 显示旋转后恢复表单中的值

转载 作者:行者123 更新时间:2023-12-01 05:01:01 25 4
gpt4 key购买 nike

我有下面的代码,问题是所有膨胀的 View 都有相同的 id(如 player_item.xml 中设置的) - 所以当我旋转屏幕时,所有这些都会恢复相同的值。最简单的解决方案是删除这些 id 并让 android 自动生成它们,但我不能这样做,因为我需要它们在相对布局中定位。有什么想法可以解决这个问题吗?

player_item.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<TextView
android:id="@+id/player_name"
style="@style/stats_edit_column"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/goals"
android:gravity="center_vertical" />

<EditText
android:id="@+id/goals"
style="@style/stats_edit_column"
android:layout_toLeftOf="@+id/assists"
android:inputType="number"
android:textSize="@dimen/text_size_normal" />

<EditText
android:id="@+id/assists"
style="@style/stats_edit_column"
android:layout_alignParentRight="true"
android:inputType="number"
android:textSize="@dimen/text_size_normal" />

</RelativeLayout>

代码

for (PlayerStats playerStats : allPlayers) {
View playerStatsView = getLayoutInflater().inflate(R.layout.player_item, null);

TextView playerName = (TextView) playerStatsView.findViewById(R.id.player_name);
playerName.setText(playerStats.getPlayerName());

EditText goalsEditText = (EditText) playerStatsView.findViewById(R.id.goals);
goalsEditText.setText(String.valueOf(playerStats.getGoals()));

EditText assistsEditText = (EditText) playerStatsView.findViewById(R.id.assists);
assistsEditText.setText(String.valueOf(playerStats.getAssists()));

editLayout.addView(playerStatsView);
}

最佳答案

我建议为每个表单创建一个 bean,并在移动到其他 Activity 时将所有表单值设置为该 bean 并将 bean 引用存储到共享首选项中,这样当您返回同一 Activity 时只需重新加载所有值从 bean 获取,这有助于保存表单的状态

希望对你有帮助

关于java - 显示旋转后恢复表单中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13378853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com