如何根据用户选择更改布局元素

时间:2011-06-13 12:24:16

标签: android

我的活动有相对布局。

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#FFFFFF">



 <TextView android:id="@+id/time_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text = "Name :"
        android:textSize = "14sp"
        android:textColor = "#000000"
        android:textStyle = "bold"
        android:layout_gravity="center_vertical|center_horizontal"
    />

   <Spinner android:id="@+id/spinner_time"
        android:layout_height="40dp" 
        android:layout_width="match_parent" 
            android:prompt="@string/time_list" 
         android:layout_below = "@+id/time_label"
         android:layout_marginLeft = "5dp"
         android:layout_marginRight = "5dp">
   </Spinner>

 <TextView></TextView> 
 <EditText></EditText>
 <ImageButton></ImageButton>

</RelativeLayout>

现在根据微调器的用户选择我需要更改布局元素,如2个按钮3 textview或4个按钮1 textview。所以对于这个我必须采取xml布局中的所有元素并使用“android:visibility”可选根据用户选择显示或有任何其他更好的方法来做到这一点因为我找到这种方法有点混乱。

由于

1 个答案:

答案 0 :(得分:1)

这是您使用Android的方式:可见性可以让您更轻松。您可以做的是为微调器中的每个项创建多个linearLayouts。请注意,我假设其中的项目数是静态的。将布局命名为layout0,layout1,layout2 ...对应于Spinner中的每个项目。然后根据微调器的选择改变可见性。

另一种方法是使用布局inflater并通过代码动态填充视图。