初级教程之 七 Include(复用layout)的使用方式(二)
2017-01-26 19:58
603 查看
本篇文章主要讲解的是之前文章的不足之处,因为之前的第一种方式并不完善,所以固在此篇文章为大家带入更清晰的使用方式,注释已经详细为大家解答,敬请阅读。
第一篇文章地址:http://blog.csdn.net/qq_20451879/article/details/54288317
简单结构组成:
1.MainAcitivity与其XML
2.复用的Layout XML
MainActivity code:
MainActivity Layout:
Inclde Layout(我们要复用的视图):
第一篇文章地址:http://blog.csdn.net/qq_20451879/article/details/54288317
简单结构组成:
1.MainAcitivity与其XML
2.复用的Layout XML
MainActivity code:
package com.example.includeall; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private TextView mSecound; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //第一种方式的进阶版使用针对在主layout多次复用layout的处理方式 //第一个复用layout的使用 // 首先获取当前布局的Layout id,这里我们直接返回View!!!因为我们并不确定我们当前复用的layout就是TextView等 View mMain = findViewById(R.id.main_text); // 之后通过之前获取的id再次获取Include layout的 id TextView mInculde = (TextView) mMain.findViewById(R.id.include_text); // 如果我们只是获取当前复用layout的id控件操作,是会报错的 // mMain.setText("xxxxx"); mInculde.setText("在主Layout操作Inclue的Layout,与我们之前的直接查找复用Layout中的id效果是一样的!"); //第二个复用layout的使用 mSecound = (TextView) findViewById(R.id.secound_text).findViewById(R.id.include_text); mSecound.setText("在同一个布局,复用了俩次相同的子布局页面, 我们需要通过双重tag操作"); mSecound.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplication(), "执行自己的相关逻辑操作", 0) .show(); } }); /**此为复用layout的直接id,---目前发现只给复用的第一个layout显示相关的操作!!!*/ TextView mTwo = (TextView) findViewById(R.id.include_text); mTwo.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplication(), "使用之前的第二种方式操作,效果一样没有区别对待,实现的效果都建立在第一个视图之上", 0) .show(); } }); /** * 注意点: * -此文的双重tag。及为俩次find id后的控件 * 1.首先复用的layout注意布局,外部布局一般高度都是wrop的。不然你会发现显示不全 * 2.如果我们复用的layout只在当前布局复用一次的话,可以直接find到复用 layout的布局的id直接处理逻辑 * 3.反之如果我们在当前布局,多次复用layout我们就需要通过双重tag获得具体事件操作 * */ } }
MainActivity Layout:
<LinearLayout 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:orientation="vertical" > <include android:id="@+id/main_text" layout="@layout/include_layout" /> <include android:id="@+id/secound_text" layout="@layout/include_layout" /> </LinearLayout>
Inclde Layout(我们要复用的视图):
<?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="wrap_content" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/include_text" android:text="复用 Layout" android:layout_gravity="center" /> </LinearLayout>
相关文章推荐
- Android初级教程 - Include(复用layout)的使用方式(一)
- 使用include实现布局(layout)复用
- 使用include实现布局(layout)复用
- XML使用include实现布局(layout)复用
- 使用include实现布局(layout)复用
- Android——layout中使用include复用模块
- Android高手进阶教程(五)之----Android 中LayoutInflater的使用!
- Android高手进阶教程(五)之----Android 中LayoutInflater的使用!
- JSP入门初级教程之Session的使用
- JSP入门初级教程之Session的使用
- Android高手进阶教程(五)之----Android 中LayoutInflater的使用!
- DedeCms初级模版制作使用教程
- JSP入门初级教程之Session的使用
- php模板使用初级教程
- WinCE5.0初级教程-Remote Registry Editor使用[一]
- 使用<include /> 标签来重用layout代码(转)
- WordPress初级教程-15: Wordpress插件的安装和使用/ Plugins
- JSP入门初级教程之plugin的使用
- JSP入门初级教程之Actions的使用
- WinCE5.0初级教程-CEImageDiff使用