我有这个布局文件,其中包含用户位置的详细信息 用户应该有1到3个位置,具体取决于我需要添加1到3个位置表单的条件
有人能告诉我如何动态地将这个xml布局文件添加到其他布局文件中吗?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="@drawable/container"
android:padding="2dp"
android:layout_below="@+id/upperBox"
android:layout_margin="5dp"
>
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="@drawable/container_inner"
android:padding="1dp"
>
<TableLayout
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:background="@color/white"
android:orientation="vertical"
android:scrollbars="vertical" >
<TextView
style="@style/footerText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tracking_settings" />
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/locationName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/location_name" />
<EditText
android:id="@+id/editTextLocationName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text" >
<requestFocus />
</EditText>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/address" />
<EditText
android:id="@+id/editextAddress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text" />
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/alertPref"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/alert_preference" />
<Spinner
android:id="@+id/spinnerAlertPref"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/alert_pref_arrays"
android:prompt="@string/alert_pref_prompt" />
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/frequency"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/frequency" />
<Spinner
android:id="@+id/spinnerFreq"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/freq_arrays"
android:prompt="@string/freq_prompt" />
</TableRow>
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/TrackBetween"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/track_between" />
<Spinner
android:id="@+id/spinnerTimeFrom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/time_arrays"
android:prompt="@string/time_prompt" />
</TableRow>
<TableRow
android:id="@+id/tableRow6"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Spinner
android:id="@+id/spinnerTimeFrom1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/am_pm_arrays"
android:prompt="@string/am_pm_prompt" />
</TableRow>
<TableRow
android:id="@+id/tableRow7"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/to"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/to" />
<Spinner
android:id="@+id/spinnerTimeTo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/time_arrays"
android:prompt="@string/time_prompt" />
</TableRow>
<TableRow
android:id="@+id/tableRow8"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Spinner
android:id="@+id/spinnerTimeTo1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/am_pm_arrays"
android:prompt="@string/am_pm_prompt" />
</TableRow>
<TextView
style="@style/footerText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/alert_settings" />
<TableRow
android:id="@+id/tableRow9"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/sexOffenderIsWithin"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="@string/sex_offender_is_within" />
<Spinner
android:id="@+id/spinnerSexOff"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/sex_offender_arrays"
android:prompt="@string/sex_offender_prompt" />
</TableRow>
<TableRow
android:id="@+id/tableRow10"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/travelAwayFromLocation"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="@string/travel_away_from_location" />
<Spinner
android:id="@+id/spinnerTravelAway"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/sex_offender_arrays"
android:prompt="@string/sex_offender_prompt" />
</TableRow>
<TableRow
android:id="@+id/tableRow11"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/arriveAtLocation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/arrive_at_location" />
<Spinner
android:id="@+id/spinnerArriveAt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/yes_donttrack_arrays"
android:prompt="@string/yes_donttrack_prompt" />
</TableRow>
<TableRow
android:id="@+id/tableRow12"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/travelByVehicle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/travel_by_vehicle" />
<Spinner
android:id="@+id/spinnerTravelBy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/yes_donttrack_arrays"
android:prompt="@string/yes_donttrack_prompt" />
</TableRow>
<TableRow
android:id="@+id/tableRow13"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/phonStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/phon_status" />
<Spinner
android:id="@+id/spinnerPhonStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/phon_status_arrays"
android:prompt="@string/phon_status_prompt" />
</TableRow>
<TableRow
android:id="@+id/tableRow14"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
style="@style/footerText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel" />
<TextView
style="@style/footerText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="@string/submit" />
</TableRow>
</TableLayout>
</RelativeLayout>
</RelativeLayout>
答案 0 :(得分:2)
此布局文件通过LayoutInflater在另一个布局中。
假设您想在主布局中添加此布局。因此,通过mainlayout.add(view)
在主布局中采用线性布局和主列布局中的列表布局,此处view
为LayoutInflater viw。
示例:
private View view;
view = getLayoutInflater().inflate(R.layout.image_sub_layout,
null);
topicLinearLayout.addView(view); // main Layout Linear layout
感谢。
答案 1 :(得分:2)
我们假设你的第一个活动是main.xml
,其中是一个空的linearLayout。
通过LayoutInflater
,您可以获得类似
linearLayout = (LinearLayout) getLayoutInflater().inflate(R.layout.main, null);
layoutToAdd = (LinearLayout) getLayoutInflater().inflate(R.layout.layout_to_add, null);
然后,您只需将所需的xml-layout-file添加到该linearLayout(其他类型的布局,单View
个或ViewGroup
s)。
linearLayout.add(layoutToAdd);
或者正如阿卜杜勒所建议的那样,你将所需的布局“投射”到视图中。
答案 2 :(得分:0)
根据我的理解,您希望布局包含1-3个位置表单,具体取决于您要实现的条件。如果您确定要处理从UI输入的位置数,那么只需使用Visibility
到GONE
的不同ID添加相同的布局三次。在从UI处理它时,您可以根据UI线程中的条件将布局的可见性更改为view.VISIBLE
。
您可以插入scrollView的代码,使主要布局可以为最终用户滚动。