私は以下のコードを持っていますが、問題はすべての膨張したビューが同じ id を持っていることです (で設定されているplayer_item.xml
ように) - 画面を回転させると、それらはすべて同じ値で復元されます。最も簡単な解決策は、これらの ID を削除して Android に自動的に生成させることですが、相対的なレイアウトに配置するために ID が必要なため、これを行うことはできません。どうすればこれを解決できますか?
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);
}