2012-07-19 79 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

相关问题