在一個項目中我們可能會需要用到相同的布局設計,如果都寫在一個xml文件中,代碼顯得很冗余,並且可讀性也很差,所以我們可以把相同布局的代碼單獨寫成一個模塊,然後用到的時候可以通過
標簽來重用layout代碼。
btn.xml:
-
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical" >
- 復制代碼 main.xml
-
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical"
- >
-
-
-
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/hello" />
- 復制代碼 TestActivity:
- package com.hilary;
-
- import android.app.Activity;
- import android.graphics.Color;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.LinearLayout;
- import android.widget.TextView;
-
- import com.hialry.R;
- /**
- *
- *@author:hilary
- *@Date:2011-12-8
- *@description:
- *
- **/
- public class TestActivity extends Activity {
- private TextView tv = null;
- private LinearLayout ll = null;
- private LinearLayout ll2 = null;
-
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- tv = (TextView) findViewById(R.id.tv);
- //如果一個布局文件中包含同一個xml文件,這兩個xml中的控件Id是一樣的,當需要操作這些控件時,需要通過定義這兩個View來加以區分,
- //如果就包含同一個xml文件側不需要此步操作
- ll = (LinearLayout) findViewById(R.id.in1);
- ll2 = (LinearLayout) findViewById(R.id.in2);
-
- ll.setBackgroundColor(Color.RED);
-
- Button btn = (Button) ll.findViewById(R.id.btn);
- btn.setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- tv.setText("My name is hilary");
- }
- });
-
- Button btn2 = (Button) ll2.findViewById(R.id.btn);
- btn2.setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- tv.setText(" You select second Button!");
-
- }
- });
- }
- } 復制代碼 如果沒有include標簽,所有布局代碼都寫在一個xml文件中,界面會顯得很冗余,可讀性很差。而且界面加載的時候是按照順序加載的,前面的布局不能調用其後面的布局id。而采用include後,一個include中可以引用其後的include中的布局id屬性 -->