Android 多个页面复用一段布局文件
2015-12-23 13:19
549 查看
原文链接:http://blog.csdn.net/qq_26643421/article/details/50386374
复用布局文件的实例化部分
CommonBottom.java
使用该复用 布局块的部分
在Activity中使用该部分代码
TestActivity.java
复用的布局文件
在一些APP中 ,需要复用一些通用的布局文件 , 为了避免重复写布局文件 , 重复实例化控件 , 重复设置监听方法 . 可以把该部分代码抽取出来 , 单独封装, 利用接口回调 , 把整个代码封装起来 , 在activity 中只需要一行代码就可以实例化该部分代码 .common_bottom_layout.xml <?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:layout_alignParentBottom="true" android:background="@color/colorPrimary" android:orientation="horizontal" android:padding="6dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <Button android:id="@+id/common_bottom_media" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="common_bottom_media" android:text="采集" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <Button android:id="@+id/common_bottom_report" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="common_bottom_report" android:text="上报" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> <Button android:id="@+id/common_bottom_cancle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="common_bottom_cancle" android:text="取消" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> </LinearLayout>
复用布局文件的实例化部分
CommonBottom.java
package com.depart.deqing.view; import android.app.Activity; import android.content.Context; import android.view.View; import android.widget.Button; import com.depart.deqing.R; /** * Created by yx on 2015/12/21. */ public class CommonBottom implements View.OnClickListener { Context mContext; OnCommonBottomClick listener; public CommonBottom(Context context) { this.mContext = context; } @Override public void onClick(View v) { if (listener == null) return; switch (v.getId()) { case R.id.common_bottom_media: listener.onMediaClick(v); break; case R.id.common_bottom_report: listener.onReportClick(); break; case R.id.common_bottom_cancle: listener.onCancleClick(); break; } } public interface OnCommonBottomClick { public void onMediaClick(View v); public void onReportClick(); public void onCancleClick(); } public void setListener(OnCommonBottomClick listener) { this.listener = listener; } public CommonBottom init() { Button media = (Button) ((Activity) mContext).findViewById(R.id.common_bottom_media); Button report = (Button) ((Activity) mContext).findViewById(R.id.common_bottom_report); Button cancle = (Button) ((Activity) mContext).findViewById(R.id.common_bottom_cancle); media.setOnClickListener(this); report.setOnClickListener(this); cancle.setOnClickListener(this); return this; } }
使用该复用 布局块的部分
<?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="match_parent" android:orientation="vertical"> <include layout="@layout/common_tool" /> <RelativeLayout android:layout_margin="16dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1"> </RelativeLayout> <!-- 在布局文件中引用复用的布局文件 --> <include layout="@layout/common_botton_layout" /> </LinearLayout>
在Activity中使用该部分代码
TestActivity.java
package com.depart.deqing.activitys; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.MotionEvent; import android.view.View; import com.depart.deqing.R; import com.depart.deqing.base.BaseActivity; import com.depart.deqing.view.CommonBottom; import com.depart.deqing.view.CommonMediaPop; /** * Created by yx on 2015/12/22. */ public class TestActivityextends AppcompateActivity implements CommonBottom.OnCommonBottomClick { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.onwatch_layout); //在这里实例化布局文件, 并实现监听接口方法 //只需要一行代码就可以直接完成复用代码块的实例化 new CommonBottom(this).init().setListener(this); } @Override public void onMediaClick(View v) { //在这里实现对应点击事件的方法 } @Override public void onReportClick() { //在这里实现对应点击事件的方法 } @Override public void onCancleClick() { //在这里实现对应点击事件的方法 finish(); } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories