2013-07-01 2 views
0

누군가가 어떻게 XML 파일에서 지정하지 않고 TableView를 만들 수 있는지 알아 내려고하고 있습니다. - 그래서 동적 ScrollView에서 동적 TableView 추가

  1. (2 세포가 0 사이의 임의의 숫자로 가득) 지정된 행과 열이있는의 TableView를 만든다 행의 수와 열의 이동합니다 : 나는이 개 활동이 ,이 하나 잘 작동하지만, 내가 너무 많은 열을 넣으려고 할 때, 분명히 숫자는 간신히 볼 수 있습니다.

    두 번째 활동

    public class TableCreator extends Activity { 
    
        private String getRandomPoints(){ 
         Random rn = new Random(); 
    
         return new Integer(Math.abs(rn.nextInt()%3)).toString(); 
        } 
    
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
         super.onCreate(savedInstanceState); 
         setContentView(R.layout.table_creator); 
    
         Bundle extras = getIntent().getExtras(); 
         int rows = extras.getInt("rows"); 
         int columns = extras.getInt("columns"); 
    
    
         TableLayout table = (TableLayout) findViewById(R.id.TableLayout); 
         for(int i=0;i<rows;i++){ 
          TableRow row = new TableRow(this); 
          row.setLayoutParams(new TableRow.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT)); 
    
          for(int j=0;j<columns;j++){ 
           TextView tv = new TextView(this); 
           tv.setText(getRandomPoints()); 
           tv.setLayoutParams(new TableRow.LayoutParams(0,LayoutParams.WRAP_CONTENT,1)); 
           tv.setGravity(Gravity.CENTER); 
    
           row.addView(tv); 
          } 
          table.addView(row); 
         } 
        } 
    } 
    

    그리고 XML 파일 : 그 후

    <?xml version="1.0" encoding="utf-8"?> 
    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@+id/TableLayout" 
        android:stretchColumns="0,1" 
        android:layout_weight="1"  
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" > 
    </TableLayout> 
    

    내가 xml 파일에 HorizontalScrollView를 추가하려고, 그래서있는 TableView은 내부 될 수 있습니다 그것. 이 시스템은 예외를 발생 시켰습니다. 시스템이 TableLayout이 사용할 높이를 결정할 수 없기 때문입니다 ...

    프로그래밍 방식으로 HorizontalScrollView를 추가하려고 시도했지만 숫자가 표시되지 않았습니다. 나는이 사이트에서 똑같은 질문을주의 깊게 수색했다고 말할 수는 있지만 여전히 대답은 내 것과 관련이 없다. ...

답변

0

여기 레이아웃을 가로 스크롤보기로 설정하면 tablelayout이 아이

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".EvacRouteTableActivity" > 

<TableLayout android:id="@+id/TableLayout01" android:layout_width="match_parent" android:layout_height="wrap_content" android:stretchColumns="0"> 

    <TableRow 
     android:id="@+id/TableRow01" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
    <TextView 
     android:id="@+id/TextView01" 
     android:background="@drawable/cell_shape" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text=" Evacuation Routes (To view route click name)" 
     android:width="340dp" 
     android:height="30dp" 
     android:textStyle="bold"></TextView> 

    </TableRow> 

</TableLayout> 
+0

는 응답 주셔서 감사합니다,하지만 난 당신이 내가 무엇을 요구 ... 나는 HorizontalScrollView가 동적으로 추가 데이터와 함께 작동하는 방식을 이해하려면 ... 당신이 제안 모양을 설명해 볼 수 없습니다 나, 도움이되지만 다른 질문에 ... –

+0

좋아, 내 대답이 바뀌었다. – yams

+0

게시 해 주셔서 다시 한 번 감사드립니다.하지만 textviews가 프로그래밍 방식으로 추가되었습니다. "비 역동적 인"방법은 쉽고 빠른 시간 안에 할 수 있습니다 ... 모든 사람의 시간을 절약하기 위해 해결책을 찾았습니다. 어떤 문제는 scrollView를 추가했기 때문에 문제가 아닌 것 같지만 LayoutParameters를 추가하는 방법이 잘못되었습니다 ... 어쨌든 [link] (http://stackoverflow.com/questions/11963465)를 참조하십시오./android-layoutparams-for-textview-makes-the-view- 프로그래밍 적으로 사라진다) –