2014-04-23 1 views
0

내가 가지고있는 것은 두 개의 배열 하나는 정적 문자열 배열이고 다른 하나는 배열 목록입니다. 내가하고 싶은 것은 테이블을 동적 레이아웃으로 만들고 동적으로 동적으로 행하는 것입니다. 데이터의 다른 소스로 7 행마다 하나의 행을 추가하는 것이지만 14 행 이후에 계속 추가합니다. 이는 매우 이상합니다. 이 문제에 대한 현명한 해결책을 알려주십시오. 내 안드로이드 활동 코드는 다음과 같습니다.테이블 동적 레이아웃 내부에 각각 7 개의 행 뒤에 빈 행을 추가하려면 어떻게해야합니까?

public class ProductInfoDetails extends Activity{ 
    private static final String product = "product"; 
    private static final String quantity = "quantity"; 
    private static final String unit = "unit"; 
    private static final String price = "price"; 
    private static final String totalprice = "totalprice"; 
    private static final String totalpriceafterdiscount = "totalpriceafterDiscount"; 
    private static final String note = "note"; 

    ArrayList<String> prodlist=new ArrayList<String>(); 
    int count; 
    int fixed; 
    String text[]={product,quantity,unit,price,totalprice,totalpriceafterdiscount,note}; 

    @SuppressLint("NewApi") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.penddinginfodetails); 

     try{ 

     prodlist = getIntent().getExtras().getStringArrayList("prodlist"); 

      count=prodlist.size(); 
      fixed=count/7; 
     } 
     catch(Exception e){ 
      e.printStackTrace(); 
     } 
     Log.e("prodlist",prodlist+""); 
     Log.e("count",count+"");//14 
     Log.e("fixed",fixed+"");//2 




     TableLayout ll = (TableLayout) findViewById(R.id.table1); 
    int razan=0; 
     for(int s=0; s<fixed;s++){ 
      if(razan<=count){ 
       for (int i = 0; i <text.length; i++) { 

        TableRow row= new TableRow(this); 
        TableRow.LayoutParams tr = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT); 
        row.setLayoutParams(tr); 

        TextView product = new TextView(this); 
        TextView product_j = new TextView(this); 


        product_j.setText(prodlist.get(razan)); 
        product_j.setBackground(getResources().getDrawable(R.drawable.back)); 
        product_j.setGravity(Gravity.RIGHT); 


        product.setText(text[i]); 
        product.setBackground(getResources().getDrawable(R.drawable.back)); 
        product.setGravity(Gravity.RIGHT); 

        row.addView(product_j); 
        row.addView(product); 

        ll.addView(row,i); 
        razan++; 

        //here is the code for adding an empty row after each seven inner rows !!! 
        if(i % 7==0){ 
         TableRow row1= new TableRow(this); 
         TableRow.LayoutParams tr1 = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT); 
         row1.setLayoutParams(tr1); 

         TextView emptyrow = new TextView(this); 
         emptyrow.setText("sereen"); 
         emptyrow.setBackground(getResources().getDrawable(R.drawable.back)); 

         row1.addView(emptyrow); 

         ll.addView(row1); 
        } 
       }//inner for 

      } 

    }//outer fors 

    } 

} 

답변

0

텍스트 []에 7 개의 항목이 있습니다.

for (int i = 0; i <text.length; i++) 

그래서 내가 == 7 일어나지 않는다 == 0 결코 같은 == 7 1에 대한이 해당 될 것이다 6

if(i % 7==0) 

에 값 0을 가질 것이다.

+0

그래서 6으로 변경해야합니까? 또는 나는 무엇을 바꿀까? – user3534834

+0

이제 논리를 다시 생각해 볼 수 있습니다. – greenapps

+0

나는 조건을 if (i> 0 && i % 6 == 0)로 변경했다. 그러나 여전히 행을 추가한다 .. 다시 나를 도울 수 있습니까? @ greenapps – user3534834