很多重复布局没有必要一次次的写,所有就引入了include
举一个demo
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<CheckBox
android:id="@+id/cbkCheck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/tvText"
android:text="NewText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
引入布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_include_test"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.axnet.buju0711.IncludeTestActivity">
<include
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/includeOne"
layout="@layout/layout_demo"
/>
<include
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/includeTwo"
layout="@layout/layout_demo"
/>
<include
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/includeThree"
layout="@layout/layout_demo"
/>
</LinearLayout>
单独引入一个include的时候不用设置宽和高
<include
android:id="@+id/includeOne"
layout="@layout/layout_demo"
/>
但是如果要引入几个include
就必须设置宽高
android:layout_height="wrap_content"
android:layout_width="wrap_content"
项目中现在有引入的三个include
但是怎么修改include中TextView上的文字呢
需要进行如下三步
第一步获取include对象
第二步通过include对象获取到Textview对象
第三步给TextView赋值
//第一步获取include对象
View includeOne=findViewById(R.id.includeOne);
View includeTwo=findViewById(R.id.includeTwo);
View includeThree=findViewById(R.id.includeThree);
//第二步通过include对象获取到Textview对象
TextView tvOne=(TextView)includeOne.findViewById(R.id.tvText);
TextView tvTwo=(TextView)includeTwo.findViewById(R.id.tvText);
TextView tvThree=(TextView)includeThree.findViewById(R.id.tvText);
//第三步给TextView赋值
tvOne.setText("wang2");
tvTwo.setText("li2");
tvThree.setText("liu2");