关于CheckBox和RadioButton的Android xml布局

时间:2014-05-11 06:28:23

标签: android android-layout android-xml android-checkbox android-radiobutton

有两个RadioButton,十二个复选框和一个发送按钮,每个按钮都有一个自定义选择器。 RadioButton和Checkbox超出范围,不能让所有RadioButton和Checkbox都在android xml布局中。 我使用了ScrollView,但它有一些关于"渲染期间引发的异常的错误:ScrollView只能托管一个直接子项#34;。 我不知道RadioButton和Checkbox如何在那里。 如何将RadioButton和CheckBox更改为该范围内的RadioButton? 感谢。

enter image description here

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >


       <ScrollView
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          >


       <TextView
           android:id="@+id/etIdUserName2"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:textSize="10sp" />

       <TextView
           android:id="@+id/etIdUseracc2"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:textSize="10sp" />

       <TextView
            android:id="@+id/etIdPassre2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="10sp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="使用者性別"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="20sp" />

        <RadioButton
            android:id="@+id/boy"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="男" />

        <RadioButton
            android:id="@+id/girl"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="女" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="使用者年齡"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="20sp" />

        <CheckBox
            android:id="@+id/under"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="18以下"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/between2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="23~27"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/between1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="18~23"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/between3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="28~32"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/up"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="32以上"
            android:textSize="15sp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="使用者興趣"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="20sp" />

        <CheckBox
            android:id="@+id/girluse"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="女裝與服飾配件、女包精品與女鞋"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/makeup"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="美容保養與彩妝"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/boyuse"
            android:layout_width="152dp"
            android:layout_height="wrap_content"
            android:text="男性精品與服飾"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/electronicproduct"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="電腦、平板與周邊"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/cellphone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="手機、配件與通"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/food"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="美食與地方特產"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/Stationery"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="文具與事務用"
            android:textSize="15sp" />

        <Button
            android:id="@+id/setbutton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="送出"
            android:textSize="15sp" />

             </ScrollView>
</LinearLayout>

2 个答案:

答案 0 :(得分:2)

“ScrollView只能托管一个直接孩子”。

所以简单地将所有内容都包装在LinearLayout

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


       <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:orientation="vertical"
          >


       <TextView
           android:id="@+id/etIdUserName2"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:textSize="10sp" />

       <TextView
           android:id="@+id/etIdUseracc2"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:textSize="10sp" />

       <TextView
            android:id="@+id/etIdPassre2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="10sp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="使用者性別"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="20sp" />

        <RadioButton
            android:id="@+id/boy"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="男" />

        <RadioButton
            android:id="@+id/girl"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="女" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="使用者年齡"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="20sp" />

        <CheckBox
            android:id="@+id/under"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="18以下"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/between2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="23~27"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/between1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="18~23"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/between3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="28~32"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/up"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="32以上"
            android:textSize="15sp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="使用者興趣"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="20sp" />

        <CheckBox
            android:id="@+id/girluse"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="女裝與服飾配件、女包精品與女鞋"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/makeup"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="美容保養與彩妝"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/boyuse"
            android:layout_width="152dp"
            android:layout_height="wrap_content"
            android:text="男性精品與服飾"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/electronicproduct"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="電腦、平板與周邊"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/cellphone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="手機、配件與通"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/food"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="美食與地方特產"
            android:textSize="15sp" />

        <CheckBox
            android:id="@+id/Stationery"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="文具與事務用"
            android:textSize="15sp" />

        <Button
            android:id="@+id/setbutton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="送出"
            android:textSize="15sp" />

        </LinearLayout>
</ScrollView>

答案 1 :(得分:1)

根据Logcat所说Exception raised during rendering: ScrollView can host only one direct child。一个人只能有ScrollView的直接子视图。由于你在ScrollView内有这么多复选框和RadioButton,它会抛出一个错误。

您只需将所有CheckboxRadioButton添加到View内,使用ParentView作为ScrollView即可处理所有RadioButtonCheckboxes }。在这里,我已为LinearlayoutParentView添加了Checkboxes RadioButton

阐释:

ScrollView // ParentView
   LinearLayout // DirectChild of ScrollView
      RadioButton & Checkboxes // Direct child of LinearLayout

布局:

   <?xml version="1.0" encoding="utf-8"?>
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical" >
   <ScrollView
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      >
   <LinearLayout
      android:layout_width="fill_parent"
      android:layout_height="match_parent"
      android:orientation="vertical"
    >
   <TextView
       android:id="@+id/etIdUserName2"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:textSize="10sp" />

   <TextView
       android:id="@+id/etIdUseracc2"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:textSize="10sp" />

   <TextView
        android:id="@+id/etIdPassre2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="10sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="使用者性別"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="20sp" />

    <RadioButton
        android:id="@+id/boy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="男" />

    <RadioButton
        android:id="@+id/girl"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="女" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="使用者年齡"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="20sp" />

    <CheckBox
        android:id="@+id/under"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="18以下"
        android:textSize="15sp" />

    <CheckBox
        android:id="@+id/between2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="23~27"
        android:textSize="15sp" />

    <CheckBox
        android:id="@+id/between1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="18~23"
        android:textSize="15sp" />

    <CheckBox
        android:id="@+id/between3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="28~32"
        android:textSize="15sp" />

    <CheckBox
        android:id="@+id/up"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="32以上"
        android:textSize="15sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="使用者興趣"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="20sp" />

    <CheckBox
        android:id="@+id/girluse"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="女裝與服飾配件、女包精品與女鞋"
        android:textSize="15sp" />

    <CheckBox
        android:id="@+id/makeup"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="美容保養與彩妝"
        android:textSize="15sp" />

    <CheckBox
        android:id="@+id/boyuse"
        android:layout_width="152dp"
        android:layout_height="wrap_content"
        android:text="男性精品與服飾"
        android:textSize="15sp" />

    <CheckBox
        android:id="@+id/electronicproduct"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="電腦、平板與周邊"
        android:textSize="15sp" />

    <CheckBox
        android:id="@+id/cellphone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="手機、配件與通"
        android:textSize="15sp" />

    <CheckBox
        android:id="@+id/food"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="美食與地方特產"
        android:textSize="15sp" />

    <CheckBox
        android:id="@+id/Stationery"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="文具與事務用"
        android:textSize="15sp" />

    <Button
        android:id="@+id/setbutton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="送出"
        android:textSize="15sp" />
      </LinearLayout>
      </ScrollView>
  </LinearLayout>