2012-07-19 104 views
0

我有下面的XML佈局駕駛我的UI:如何以編程方式在Android中換出視圖控件?

<TableLayout 
    android:id="@+id/tableLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:stretchColumns="1" 
    android:layout_margin="10dp" > 

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

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Username:" /> 

     <EditText 
      android:id="@+id/txtUsername" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:inputType="textPersonName" > 

     </EditText> 

    </TableRow> 

     <!-- more rows are here --> 

</TableLayout> 

我想重用此佈局爲我的應用程序的其他部分,但在一個地方改變一些東西稍稍。我想EditTexttxtUsername更改爲TextView,在相同的位置和一切。所以基本上我換出了代碼中的TextView的EditText。

我該怎麼做?

回答

2

如果這是您需要的唯一更改,我會通過將TextView添加到您的佈局(默認爲View.GONE)並使用View.setVisibility(View.VISIBLE)和View.setVisibility(View.GONE)適當交換它們。

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

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Username:" /> 

    <EditText 
     android:id="@+id/txtUsername" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="textPersonName" > 

    </EditText> 
    <TextView 
     android:id="@+id/txtUsernameTV" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="textPersonName" 
     android:visibility="gone"> 

    </TextView> 
</TableRow> 

然後在你的Java中,你可以留下你已經具有相同的活性,在新的活動(您想TextView的替代)做這樣的事情:

editTextReference.setVisibility(View.GONE); 
textViewReference.setVisibility(View.VISIBLE); 

注意兩個視圖將需要不同的值爲他們的id。

+0

完美,謝謝! – 2012-07-19 23:55:23

相關問題