android第一行代码-6.自定义控件的实现
0.假设一个应用中标题栏控件都是共用的,如果每个activity都需要设置button,绑定方法,那代码就会很臃肿。那我们可以自定义控件,然后继承这个控件就行了。
自定义控件为TitleLayout,LayoutInflater.from(context).inflate(R.layout.title,this);可以实现动态加载。LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化的,类似于findViewById(),但是findViewById找的是xml布局文件下的具体widget控件(如Button、TextView等)。
1.控件实现
public class TitleLayout extends LinearLayout implements View.OnClickListener {public TitleLayout(Context context,AttributeSet attrs) {super(context, attrs);LayoutInflater.from(context).inflate(R.layout.title,this);Button titleBack = (Button) findViewById(R.id.title_back);Button titleEdit = (Button) findViewById(R.id.title_edit);titleBack.setOnClickListener(this);titleEdit.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.title_back:((Activity) getContext()).finish();break;case R.id.title_edit:Toast.makeText(getContext(),"you click this button",Toast.LENGTH_SHORT).show();break;}} }
2.控件引用
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:weightSum="1"><activitytest.example.com.uiwidgettest.TitleLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"></activitytest.example.com.uiwidgettest.TitleLayout></LinearLayout>
android第一行代码-6.自定义控件的实现相关推荐
- Android build.gradle文件详解(转述自《Android第一行代码》第二版)
Android build.gradle文件详解 1. 最外层目录下的build.gradle文件 1.1 repostories 1.2 dependencies 2. app目录下的build.g ...
- Android第一行代码学习思考笔记(碎片、广播、持久化技术和Android数据库)
Android第一行代码学习思考笔记(碎片.广播.持久化技术和Android数据库 第四章 手机平板要兼顾--探究碎片 4.1碎片是什么(Fragment) 4.2碎片的使用方式 4.2.1碎片的简单 ...
- Android第一行代码-Activity
文章目录 Android第一行代码 Activity 1.Activity基本用法 2.创建和加载布局 加载布局(在Activity中加载布局) 在AndroidManifest文件中注册(所有的ac ...
- Android第一行代码(第一行代码、活动)
一.第一行代码 1.了解全貌 1.1Android的系统架构 Android的系统架构:Linux内核层.系统运行库层.应用框架层和应用层 1.Linux内核层 Android系统是基于Linux内核 ...
- Handler内存泄漏问题解决方案(Android,第一行代码,This Handler class should be static or leaks might occur)
1 问题背景 博主最近在复习<第一行代码>的第10.2.2章节--在子线程中更新UI,书中给出的在UI主线程中用匿名内部类实现Handler的写法如下: private Handler h ...
- Android第一行代码第二版简要总结
进入安卓的第一本书(简要概括) 第一章 了解大体Android 1.Android系统架构 Linux内核层:为Android设备的各种硬件提供了底层的驱动. 系统运行库层:通过c/c++库来提供主要 ...
- Android开发之LitePal数据库的使用(参考于《Android 第一行代码》)
配置相关文件 在使用之前要进行相关配置,首先要在app.build.gradle中引入LitePal的依赖(下面最后一行代码) dependencies {implementation fileTre ...
- 《Android 第一行代码》十一章 Service学习笔记
Android中Service学习笔记 Service的基本使用方法 Service的启动方式有两种,第一种是使用startService()和stopService()方法来启动和停止Service ...
- (Android第一行代码)活动的启动模式
活动的启动模式 启动模式一共有四种,分别是 standard.singleTop. singleTask 和 singleInstance,可以在 AndroidManifest.xml 中通过给&l ...
- Android第一行代码——第三章:控件的使用方法5A-00-1A-C4-8C-55(2009+jjy)
标题:这章主要学习如何控件的使用方法 1 TextView. 创建activity_main.xml中的代码 代码如下: <?xml version="1.0" encodi ...
最新文章
- 14_传智播客iOS视频教程_instancetype
- 想学新的编程语言?考虑下Go吧
- Go开发之路 -- Go语言基本语法 - 作业
- 20162311 算法复杂度-3
- 【编程好习惯】将常量放在“==”之前
- ONNX系列七 --- 在Python中使用可移植的ONNX AI模型
- c语言程序一些常见的不足,C语言常见错误分析及解决方法
- 应用安全的重要性!再怎么强调都不过分的5大理由
- jquery中的trigger和triggerHandler区别
- 【verilog教程】第3篇:verilog关键词
- Java图书管理系统
- 优化模型验证关键代码06:多行程旅行商问题(mTSP)
- python统计字符串中大写英文、小写英文、汉字、数字等个数
- 远程访问openwrt路由器+配置动态DNS
- openwrt路由表设置_OpenWrt路由器常用设置
- 如何优雅的编写前端代码
- 一文彻底看懂LightGBM
- 时间序列的数据分析(七):数据平稳性
- Linux 压缩文件和文件打包。
- 多人审批功能简单实现
热门文章
- ubuntu 11.10 因为gcc版本过高引起的错误,安装 gcc 4.4(转)
- 30天敏捷结果(14):要事第一
- 关于Kswapd的理解(一)
- 《System语言详解》——5. 语言元素
- K - 最少拦截系统(动态规划)
- 单源最短路(SPFA算法)
- oracle字符串转日期比较大小写,【varchar】oracle中比较日期大小日期定义的是varchar2类型的......
- c++ 开方_20款丨空调控制系统的三种打开方式
- 核函数(Kernel Function)与SVM
- 格雷码的生成详解(C++)(附格雷码对照表)