我正在开发一个联系人列表安卓应用程序,我每次按添加地址按钮时都会尝试插入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我想要完成的事情
答案 0 :(得分:0)
您可以在第一个XML布局文件中的FrameLayout
之后创建TableLayout
,然后将第二个布局扩展为FrameLayout
。或者,只是将第二个布局嵌入到包含布局中的第一个布局中(如我上面建议的FrameLayout
),并将容器标记为android:visibility="gone"
。按下按钮后,更改可见性,其他5个字段将变为可见。