2017-03-20 1 views
0

안녕하세요 동료 stackoverflowers,프로그래밍 방식으로 문자열 배열을 통해 테이블 ​​레이아웃 채우기

방금 ​​내 activity_customer 레이아웃 내에서 테이블 레이아웃을 채우는 데이 코드를 작성했습니다. 어떤 이유로 든 약간의 오류가 발생하지 않고 실행되지만 "populateView"끝 부분에서는 응용 프로그램이 중지되거나 중단됩니다.

나는 구글/stackoverflow를 통해 발견 된 많은 것들을 시도했지만 아무도 작동하지 않습니다. 누군가가 왜 앱이 멈추는 지 알 수있게되기를 바랍니다. 사전에

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_customer); 
    populateView(DataClass.getReturnData()); 
} 

private void populateView(String[] Array){ 
    int len = Array.length; 

    TableLayout tab = (TableLayout) findViewById(R.id.table); 
    if (len != 0){ 
     for (int i = 0; i <= len - 1; i++) { 
      TableRow row = new TableRow(this);     
      TextView tvName = new TextView(this); 
      tvName.setText("" + Array[i]); 
      System.out.println(Array[i]); 
      tab.addView(row); 
     } 
    } 
} 

감사합니다, Soulrox 여기

+0

로그 정보를 제공 .. –

답변

1

이 완벽한 예입니다

public class MainActivity extends Activity 
{ 


    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     String[] row = { "ROW1", "ROW2", "Row3", "Row4", "Row 5", "Row 6", 
         "Row 7" 
         }; 
     String[] column = { "COLUMN1", "COLUMN2", "COLUMN3", "COLUMN4", 
          "COLUMN5", "COLUMN6" 
          }; 
     int rl=row.length; 
     int cl=column.length; 

     ScrollView sv = new ScrollView(this); 
     TableLayout tableLayout = createTableLayout(row, column,rl, cl); 
     HorizontalScrollView hsv = new HorizontalScrollView(this); 

     hsv.addView(tableLayout); 
     sv.addView(hsv); 
     setContentView(sv); 

    } 

    private TableLayout createTableLayout(String [] rv, String [] cv,int rowCount, int columnCount) 
    { 
     // 1) Create a tableLayout and its params 
     TableLayout.LayoutParams tableLayoutParams = new TableLayout.LayoutParams(); 
     TableLayout tableLayout = new TableLayout(this); 
     tableLayout.setBackgroundColor(Color.BLACK); 

     // 2) create tableRow params 
     TableRow.LayoutParams tableRowParams = new TableRow.LayoutParams(); 
     tableRowParams.setMargins(1, 1, 1, 1); 
     tableRowParams.weight = 1; 

     for (int i = 0; i < rowCount; i++) 
     { 
      // 3) create tableRow 
      TableRow tableRow = new TableRow(this); 
      tableRow.setBackgroundColor(Color.BLACK); 

      for (int j= 0; j < columnCount; j++) 
      { 
       // 4) create textView 
       TextView textView = new TextView(this); 
       // textView.setText(String.valueOf(j)); 
       textView.setBackgroundColor(Color.WHITE); 
       textView.setGravity(Gravity.CENTER); 

       String s1 = Integer.toString(i); 
       String s2 = Integer.toString(j); 
       String s3 = s1 + s2; 
       int id = Integer.parseInt(s3); 
       Log.d("TAG", "-___>"+id); 
       if (i ==0 && j==0) 
       { 
        textView.setText("0==0"); 
       } 
       else if(i==0) 
       { 
        Log.d("TAAG", "set Column Headers"); 
        textView.setText(cv[j-1]); 
       } 
       else if(j==0) 
       { 
        Log.d("TAAG", "Set Row Headers"); 
        textView.setText(rv[i-1]); 
       } 
       else 
       { 
        textView.setText(""+id); 
        // check id=23 
        if(id==23) 
        { 
         textView.setText("ID=23"); 

        } 
       } 

       // 5) add textView to tableRow 
       tableRow.addView(textView, tableRowParams); 
      } 

      // 6) add tableRow to tableLayout 
      tableLayout.addView(tableRow, tableLayoutParams); 
     } 

     return tableLayout; 
    } 
} 

는 출력 :

enter image description here

+0

이 설명했다 나에게 그것이 작동하도록 할 필요가있는 모든 것. – Soulrox

관련 문제