按钮onClick动作

时间:2014-03-13 02:48:21

标签: java android android-layout

我正在开发一个联系人列表安卓应用程序,我每次按添加地址按钮时都会尝试插入5个新的编辑文本字段。我试图在onClick方法中的java文件中创建文本字段,但它不起作用,事情就是我听说你可以在另一个布局中添加一个布局,现在我试图添加一个带有5个文本的布局包含按钮的布局内的字段。这是.xml文件的代码,其中包含一些其他字段和添加地址按钮

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

    <LinearLayout

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
         android:id="@+id/add_contact_layout"
        android:orientation="vertical" >

        <EditText
            android:id="@+id/first_name_editText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="@string/first_name_hint" >
        </EditText>

        <EditText
            android:id="@+id/second_name_editText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="@string/second_name_hint" />

        <EditText
            android:id="@+id/mobile_phone_editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="@string/cell_phone_hint"
            android:inputType="phone" />

        <EditText
            android:id="@+id/work_phone_editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="@string/work_phone_hint"
            android:inputType="phone" />

        <EditText
            android:id="@+id/email_editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="@string/email_text_hint"
            android:inputType="textEmailAddress" />

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

        <Button
            android:id="@+id/add_address_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/add_address_text" />

        <Spinner
            android:id="@+id/address_spinner"
            android:textSize="20sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </TableRow>

    </LinearLayout>

</ScrollView>

这是包含五个编辑文本字段的新.xml文件的代码:

    <?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" >

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
        <TextView
        android:id="@+id/typeOfAdresstextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/spinner_value"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    </TableRow>

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

        <EditText
            android:id="@+id/address_street_editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"

            android:hint="@string/street_hint"
            android:inputType="textPostalAddress" />

    </TableRow>

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

        <EditText
            android:id="@+id/address_number_editText"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:ems="10"

            android:hint="@string/address_number_hint"
            android:inputType="number" />

        <EditText
            android:id="@+id/address_city_editText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"

            android:hint="@string/city_hint"
            android:inputType="textPostalAddress" />

    </TableRow>

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

        <EditText
            android:id="@+id/address_state_editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"

            android:hint="@string/state_hint"
            android:inputType="textPostalAddress" />

    </TableRow>

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

        <EditText
            android:id="@+id/address_zipcode_editText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"

            android:hint="@string/zipcode_hint"
            android:inputType="number" />

    </TableRow>


</LinearLayout>

我的目标是在按钮和微调器下面插入这5个文本字段,每次按下按钮时,这些文本字段再次出现,以便用户能够添加他/她想要的所有地址(在以前填写的地址文本字段)。我不知道这是否是正确的方法,但如果有另一种方法可以实现这一点,我愿意接受建议。在这里,我留下了sketch我想要完成的事情

1 个答案:

答案 0 :(得分:0)

您可以在第一个XML布局文件中的FrameLayout之后创建TableLayout,然后将第二个布局扩展为FrameLayout。或者,只是将第二个布局嵌入到包含布局中的第一个布局中(如我上面建议的FrameLayout),并将容器标记为android:visibility="gone"。按下按钮后,更改可见性,其他5个字段将变为可见。