2012-05-15 3 views
0

나는 i ID를 가져와이 ID로 모든 j 값을 표시해야하는 할당을 받았습니다. 하지만 문제가 있습니다 : on i 첫 번째 값 j 값이 제대로 올 수 있지만 i 두 번째 id j 첫 번째 ID에 표시되는 값이 올 것입니다. 그것은 업데이 트되지 않습니다.Java에서 루프 오류가 발생했습니다

코드 조각은 다음과 같습니다

for (int i = 0; i <= assignment.getValue().size(); i++){ 

     TableRow tr = new TableRow(this); 
     tr.setPadding(2, 2, 2, 2); 

     TableLayout.LayoutParams tableRowParams= 
       new TableLayout.LayoutParams 
       (TableLayout.LayoutParams.FILL_PARENT,TableLayout.LayoutParams.FILL_PARENT); 

     int leftMargin=0; 
     int topMargin=2; 
     int rightMargin=0; 
     int bottomMargin=1; 

     tableRowParams.setMargins(leftMargin, topMargin, rightMargin, bottomMargin); 

     tr.setLayoutParams(tableRowParams); 

     value[i]= new TextView(this); 
     value[i].setText(assignment.getValue().get(i)); 
     System.out.println(value[i].getText().toString()); 
     value[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
     tr.addView(value[i]); 

    for(int j= 0; j < assignment.getScore().size()/assignment.getValue().size(); j++){ 
     scr[i]= new TextView(this); 
      scr[i].setText(categorylist.getScore().get(j)); 
      System.out.println(scr[i].getText().toString()); 
      scr[i].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
      tr.addView(scr[i]); 
    } t1.addView(tr, tableRowParams); 
+6

의사 코드가 아닌 * 실제 * 코드를 게시하십시오. –

+0

문제를 식별하기에 충분하지 않습니다. –

+3

'j' 루프가'i '에 작동하지 않거나 외부 루프에서 파생 된 것 ... 따라서'i '에 관계없이 동일한 출력이됩니다. 사실, 중첩 된'j' 루프를 "stand alone"으로 옮기면 똑같은 것을 얻을 수 있습니다. –

답변

0
>>> on i 1st value j values are coming properly but on i 2nd id j same values are coming which it is showing on 1st id. its not updating 

난 당신이 내가에 따라 작동하는 J를 갖고 싶어 제대로 문제를 이해합니다. 하지만 당신의 코드를 보면 i & j와 아무 관계도 없습니다.

for(int j= 0; j < assignment.getScore().size()/assignment.getValue().size(); j++){ 
... 
... 
} 

두 번째 루프가 제대로 작동하려면 i (논리에 따라)에 의존해야합니다.

+0

@ 뮤나를 확인하십시오. 대답은 고맙습니다. 예 맞아. 하지만 나는 할당 및 크기를 가져갔습니다 .getValue(). size() 내가 그것을 취하고 이런 식으로 값을 취하는 scr [i] .setText (categorylist.getScore(). get (j)); – user1395397

+0

나는 여러 가지 방법으로 (int j = 0; j <= i; j ++)와 비슷하지만 오류 배열을 바운드 예외 (out of bound exception)에서 제외 시키려고 노력했다. – user1395397

+0

내가 실수를하고있는 곳을 얻었습니까 ?? – user1395397

0

assign.getValue() assignment.getScore() 및 categoryList.getScore() 사이에 어떤 관계가 있는지 분명치 않습니다. realtionship이 올바르게 설정되면 더 나은 답변을 얻을 수 있습니다.

scr [i] .setText (categorylist.getScore(). get (j));

상관없는이 '내가'당신은 항상 같은 categorylist.getScore()를 설정하는 무엇.,는 SCR [I]에 (j)를 얻을

SCR과 같이 [I] .setText (categorylist [i] .getScore(). get (j))가 문제의 픽스 일 수 있습니다.

관련 문제