所以我一直在尝试找出布局并使用布局充气器,但我遇到了一些问题。我有两个相对的 xml 布局文件,一个 xml 文件有两个 textView、一个 editText 字段和一个 spinner 对象:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/firstLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/goalNameView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="5dip"
android:text="@string/goalName" />
<EditText
android:id="@+id/goal_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/goalNameView"
android:hint="@string/editText"
android:ems="10" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/goalTasksView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/goal_tasks"
android:layout_alignBottom="@+id/goal_tasks"
android:layout_alignLeft="@+id/goalNameView"
android:text="@string/goalTasks" />
<Spinner
android:id="@+id/goal_tasks"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/goalTasksView"
android:layout_marginTop="51dp" />
</RelativeLayout>
另一个 xml 文件有一个 textView 和一个 editText 字段:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tView"
>
<EditText
android:id="@+id/taskNameField"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/taskNameView"
android:ems="10"
android:hint="@string/editText" />
<TextView
android:id="@+id/taskNameView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/taskNameField"
android:layout_alignBottom="@+id/taskNameField"
android:layout_alignParentLeft="true"
android:text="@string/taskName"
/>
</RelativeLayout>
我正在尝试将这两个布局与第三个 xml 文件(main.xml)一起修补:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/theMain"
>
<include android:id="@id/mainLayout" layout="@layout/activity_goal_keeper" />
</LinearLayout>
我希望布局工作的方式是显示第一个布局(@id/firstLayout),然后直接在其下方显示第二个布局(@id/tView)。我读过我需要在 LinearLayout 上实现布局来实现这一点,这就是为什么我有第三个布局(@id/theMain)。
如您所见,我有一个@id/firstLayout 的包含语句,但我没有@id/tView 的包含语句,因为我试图通过我的主要活动来扩充@id/tView 的多个版本:
public class GoalKeeperActivity extends Activity implements AdapterView.OnItemSelectedListener {
public Integer[] items= {1,2,3,4,5,6,7,8};
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
//setContentView(R.layout.activity_goal_keeper);
setContentView(R.layout.main);
Spinner numOfTasks=(Spinner) findViewById(R.id.goal_tasks);
numOfTasks.setOnItemSelectedListener(this);
ArrayAdapter<Integer> aa = new ArrayAdapter<Integer>(this, android.R.layout.simple_spinner_item, items);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
numOfTasks.setAdapter(aa);
ViewGroup item = (ViewGroup) findViewById(R.id.theMain);
for(int i=0; i<3;i++)
{
View child = getLayoutInflater().inflate(R.layout.tasks_view, item, false);
child.setId(i);
item.addView(child);
}
我的问题是 @firstLayout 正确显示,但 @tView 根本没有显示。有人可以解释我错过了什么吗?
提前致谢。