동일한 TextView를 팽창시키고 재사용하는 것과 관련된 몇 가지 문제점이 있습니다.
그것도 같은 textview를 반복적으로 덮어 쓰려고 노력하는 것과 마찬가지입니다. 여기 보기를 사용하여 여러 번 풍선을 사용하십시오
LayoutInflater inflater = LayoutInflater.from(this);
View mainlayout = inflater.inflate(R.layout.days_monday_inflate, null);
View layout_number = inflater.inflate(R.layout.inflate_number, null);
for (int i = 0; i < 10; i++) {
row = new TableRow(this);
number = (TextView) layout_number.findViewById(R.id.Number);
number.setTag(i);
number.setText(Integer.toString(i));
row.addView(number);
}
setContentView(mainlayout);
는 inflate_number.xml
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/Number"
android:layout_width="3dp"
android:layout_height="wrap_content"
android:layout_gravity="center|bottom"
android:text="1" />
이 점점 오류 메신저입니다 및 해당 행에 : 51입니다 : 당신은 하나를 추가하려는 row.addView(number);
07-18 20:54:25.124: E/AndroidRuntime(1166): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 07-18 20:54:25.124: E/AndroidRuntime(1166): at android.view.ViewGroup.addViewInner(ViewGroup.java:1970) 07-18 20:54:25.124: E/AndroidRuntime(1166): at android.view.ViewGroup.addView(ViewGroup.java:1865) 07-18 20:54:25.124: E/AndroidRuntime(1166): at android.view.ViewGroup.addView(ViewGroup.java:1822) 07-18 20:54:25.124: E/AndroidRuntime(1166): at android.view.ViewGroup.addView(ViewGroup.java:1802) 07-18 20:54:25.124: E/AndroidRuntime(1166): at com.trainingschedule.days.Monday.onCreate(Monday.java:50) 07-18 20:54:25.124: E/AndroidRuntime(1166): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 07-18 20:54:25.124: E/AndroidRuntime(1166): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
고마워요! 지금 약 2 시간 동안 이것과 함께 앉아 있었 더라면, abob noobish. 하지만 이제는 내 응용 프로그램 개발을 계속할 수 있습니다. – JussT
팽창 할 때 그 null을 전달해야한다는 점에 주목해야합니다. 뷰 그룹에 첨부하려고하면 inflate()가 뷰 그룹을 반환하고 findViewById가 여전히 ID의 첫 번째 인스턴스를 반환하기 때문에 null을 전달해야합니다. 새로운. – MikeHelland
@mikethematrix 사실, 이제 null을 전달하는 것이 잘못된 접근임을 깨닫게됩니다.실제로 부모 레이아웃을 전달해야하지만, 레이아웃에 즉시 첨부하지 못하도록 마지막 매개 변수로'false'를 전달해야합니다 (참조를 얻을 수 있도록 허용). 답변을 업데이트했습니다. – kcoppock