2014-04-28 4 views
0

이 게시물을 작성합니다. 새 항목이기 때문에 약간의 도움이 필요합니다. 일부 값을 사용하여 클래스에서 tablelayout을 만들 수있는 응용 프로그램에 대해 약간의 연습을하고 있습니다. 내가 버튼을 눌러 이후하지만 난 오류가 "지정된 아이가 이미 부모가 있습니다. 먼저 아이의 부모에 removeView()를 호출해야한다"얻을TableLayout 클래스 만들기

여기
public class TabelFlat extends Activity{ 
    //deklarasi variabel 
    String jumlah,jasa,jangkawaktu; 
    int jum = 0, jsa = 0, jkwaktu = 0; 
    int a = 0, b = 0, c = 0, d = 0, i = 0; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     Bundle extras = getIntent().getExtras(); 

     //mengambil value yg diimport dari class lain 
     if (extras != null) { 
      jumlah = extras.getString("jumlah"); 
      jasa = extras.getString("jasa"); 
      jangkawaktu = extras.getString("jangkawaktu"); 
    } 
     //konversi string menjadi int 
     jum = Integer.parseInt(jumlah); 
     jsa = Integer.parseInt(jasa); 
     jkwaktu = Integer.parseInt(jangkawaktu); 

     //membuat tabel 
     TableLayout MainLayout = new TableLayout(this); 
     MainLayout.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.FILL_PARENT)); 
     MainLayout.setStretchAllColumns(true); 

     //Baris Judul 
     TableRow row1 = new TableRow(this); 
     TextView text1 = new TextView(this); 
     text1.setText("Bulan"); 
     TextView text2 = new TextView(this); 
     text2.setText("Total Angsuran"); 
     TextView text3 = new TextView(this); 
     text2.setText("Angsuran"); 
     TextView text4 = new TextView(this); 
     text2.setText("Bunga"); 
     TextView text5 = new TextView(this); 
     text2.setText("Sisa Saldo"); 
     text2.setGravity(android.view.Gravity.RIGHT); 
     //memasukkan nilai text ke row 
     row1.addView(text1); 
     row1.addView(text2); 
     row1.addView(text3); 
     row1.addView(text4); 
     row1.addView(text5); 
     //menambah row ke tabel 
     MainLayout.addView(row1); 
     //kalkulasi 
     TextView tangsuran = new TextView(this); 
     a = (jum * 120/100); 
     tangsuran.setText(""+String.valueOf(a)); 

     TextView angsuran = new TextView(this); 
     b = jum/jkwaktu; 
     angsuran.setText(""+String.valueOf(b)); 

     TextView bunga = new TextView(this); 
     c = jum * 20/100/jkwaktu; 
     bunga.setText(""+String.valueOf(c)); 
     //loop 

     d = jum; 
     for (i = 1;i<=jkwaktu;i++){ 

      TableRow barisloop = new TableRow(this); 
      //membuat string kosong untuk setiap kolom 
      TextView bulan = new TextView(this); 
      bulan.setText(""+i); 
      TextView sisa = new TextView(this); 
      d = d - b; 
      sisa.setText(""+String.valueOf(d)); 

      barisloop.addView(bulan); 
      barisloop.addView(tangsuran); 
      barisloop.addView(angsuran); 
      barisloop.addView(bunga); 
      barisloop.addView(sisa); 

      MainLayout.addView(barisloop); 
     } 

     setContentView(MainLayout); 
    } 
} 

답변

0

당신에게 tangsuran, angsuranbunga 텍스트보기를 추가 새 행이 있지만 다른 행에 이미 추가되어 있습니다. 루프의 행에 대해 새 객체를 만들어야합니다.

for (i = 1;i<=jkwaktu;i++){ 

     TableRow barisloop = new TableRow(this); 
     //membuat string kosong untuk setiap kolom 
     TextView bulan = new TextView(this); 
     bulan.setText(""+i); 
     TextView sisa = new TextView(this); 
     d = d - b; 
     sisa.setText(""+String.valueOf(d)); 

     barisloop.addView(bulan); 
     //barisloop.addView(tangsuran); 
     //barisloop.addView(angsuran); CREATE NEW TEXTVIEWS 
     //barisloop.addView(bunga); 
     barisloop.addView(sisa); 

     MainLayout.addView(barisloop); 
    }