2013-06-27 1 views
1

동적으로 채워진 TextViews 목록이 작동했습니다. 하지만 이제는 다중 열 TableView로 만들고 싶습니다. 동적으로 행을 만들고 레이아웃에 추가했지만 아무 것도 표시되지 않습니다. 누군가 내가 볼 수없는 것을 지적 할 수 있습니까?Android TableLayout 내용이 표시되지 않습니다.

디버거는 텍스트가 포함 된 textviews가 포함 된 행을 포함하는 레이아웃을 보여줍니다. match_parent 너비와 높이를 만들려고 시도했지만 아직 아무것도 표시 할 수 없습니다.

다음은 코드입니다.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/detailScroll" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<LinearLayout 
    android:id="@+id/detailLayout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/almost_black" 
    android:orientation="vertical" > 

    <TableLayout 
     android:id="@+id/detailTable" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/almost_black" 
     android:orientation="vertical" 
     android:stretchColumns="1" > 

     <TableRow 
      android:id="@+id/testRow" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" > 

      <TextView 
       android:id="@+id/testText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Testing" /> 
     </TableRow> 
    </TableLayout> 

    <Button 
     android:id="@+id/protocolButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_marginLeft="40sp" 
     android:layout_marginRight="40sp" 
     android:background="@drawable/protocol_button" 
     android:minHeight="40sp" 
     android:onClick="getProtocol" 
     android:padding="5sp" 
     android:text="@string/protocol_button_text" > 
    </Button> 
</LinearLayout> 
</ScrollView> 

자바

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
setContentView(R.layout.detail); 
layout = (TableLayout) this.findViewById(R.id.detailTable); 
    TableRow tr; 

    if (project.ProtocolNumber != null) 
    { 
     tr = BuildTableRow(res.getString(R.string.protocol_number_header), project.ProtocolNumber); 
     layout.addView(tr); 
    } 
private TextView BuildTextView(String string) 
{ 
    TextView tv = new TextView(this); 
    tv.setLayoutParams(lparams); 
    tv.setText(Html.fromHtml(string)); 
    tv.setTextColor(Color.BLACK); 
    tv.setPadding(5, 5, 5, 5); 

    return tv; 
}// BuiltTextView 

private TableRow BuildTableRow(String left, String right) 
{ 
    TableRow tr = new TableRow(this); 
    LayoutParams rowParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
    tr.setLayoutParams(rowParams); 
    tr.setBackgroundColor(Color.RED); 
    tr.addView(BuildTextView(left)); 
    tr.addView(BuildTextView(right)); 
    return tr; 
} 

감사합니다.

답변

1

트릭은 LayoutParams를 제거하는 것입니다.