TextViewを動的に追加する際に問題があります。最初にgetRoomList()
という方法でリストから雇用された部屋を追加したいのですが、その後にexistingRoomNames
という配列の ":Free"という文字列の部屋を追加しますが、雇われません。複数のTextViewをLinearLayoutに動的に追加する
<LinearLayout
android:orientation="vertical"
android:layout_width="313dp"
android:layout_height="150dp"
android:id="@+id/linear1"
android:layout_gravity="center"></LinearLayout>
親のLinearLayout内にある:
public void checkRoomsAndDate() {
linearLayout = (LinearLayout) findViewById(R.id.linear1);
linearLayout.removeAllViews();
for (Room room : mCalendarModel.mList.getRoomList()) {
addHiredRoomToLayout(room);
}
addNotHiredRoomsToLayout();
}
public void addHiredRoomToLayout(Room room) {
textView = new TextView(this);
textView.setText(room.getParameters());
linearLayout.addView(textView);
}
public void addNotHiredRoomsToLayout() {
textView2 = new TextView(this);
for (String name : Constants.existingRoomNames) {
boolean contains = false;
for (Room room : mCalendarModel.mList.getRoomList()) {
if (room.getName().equals(name)) {
contains = true;
}
}
if (!contains) {
textView2.setText(name + ": Free");
linearLayout.addView(textView2);
}
}
}
ここではXMLです。
私はこのような例外を取得:最後の行に
`java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.`
:
linearLayout.addView(textView2);
がある問題は何ですか?
public void addHiredRoomToLayout(Room room) {
textView = new TextView(this);
textView.setText(room.getParameters());
linearLayout.addView(textView);
}
あなたの問題を解決した場合は、回答に同意してください。 –
解決済み、ありがとうございました! –