【Android】UI组件变量组织

说明

这不是一篇技术文章,而是因为最近项目新来了几个android新人,所以我琢磨在代码风格上进行一下统一,所以有了以下以及后面的几篇文章。

java文件内部UI组件变量组织

UI组件使用小写字母“v”作为前缀。

v主要表示“View”,android源码中,变量前缀主要是“m”,但是个人觉得对于UI变量,还是用“v”比较清晰

意图导向,最小化抽象

UI变量的“声明类型”应该是能够实现意图的最小化抽象类型,变量名需要能表现出一个组件的功能。

比如,交互需求有一个ImageButton,点击之后的动作是触发一个搜索请求。应该怎么组织变量呢?

第一步:声明类型

声明这个变量大概有几种方式:

1. private ImageButton varName;
2. private ImageView varName;
3. private View varName;

这些声明都没有什么问题,问题是如果这个按钮只是单纯的触发一个点击事件,
那么也就表明我们的意图只需要使用View级别就行,因为View.setOnClickListener(OnClickListener)是我们唯一关心的功能,所以只需要将类型限定在View级别就行。

另外,UI是一个变化频度比较高的部分,越抽象就越容易修改。
换句话说,就是“面向接口编程”,View在这里就充当了接口的角色,这样,不管以后我们把ImageButton换成ImageView,Button或者TextView都不用修改定义的。

第二步:变量名

变量命名可能有下面几种:

1.

    ImageButton vImageButton1

这种命名只应该出现在教程代码中,项目代码中是绝对不应该出现的

2.

    ImageButton vQueryImageButton(或者vQueryBtn)

这个命名其实可以接受,但是一个问题就是,变量名涉及到具体的组件类型,参照上面第一步的说明,如果并不会使用到“ImageButton”特定的方法,就没有必要过于具体化一个变量。

3.

    ImageButton vSearch

这个命名其实也可以接受,而且也比较适用。

4.

    ImageButton vSearchAction

相比上面的vSearch,个人还是比较偏向于这种命名。
虽然都是纯粹的意图相关,但一个问题就是完成某个意图可能需要几个组件配合,比如对于搜索来说,一般还会有一个输入框,这时候就可以将输入框命名为vSearchContent,这样可以使用后缀“Action”和“Content”将两个部分区分开来

XML内部组件id命名

xml文件中的id命名也是一样,需要提供给java文件使用的尽量意图导线。
比如RelativeLayout命名中没有必要含有完整的“RelativeLayout”字段,因为实际项目中,需要调用RelativeLayout特定方法的情况基本没有。所以使用container等更泛的名字也可以。

至于只在布局文件中用来进行定位或者锚点的组件,可以将id命名得更明显一下,比如使用local,anchor之类名字,以便告诉java代码不应该随意获取这些组件,因为这些id并非稳定字段。

Android分享 Q群:315658668
时间: 2024-10-14 00:53:33

【Android】UI组件变量组织的相关文章

Android UI组件之EditText 实现网站注册效果的校验

时间过得太快,还没有什么感觉就到周末了,人生五十载,如梦亦如幻.不过我还没那么老.前两天曾说过,如果需要实现输入IP的功能,那么我们可以整一个自定义控件,然后对他进行事件监听,巴拉巴拉一大堆,好不容易做完了.后来想想,这是为了符合我们平常在PC上的习惯而去自定义的.那么如果只是单纯的为了输入一个IP地址,然后得到结果,不想去这么折腾,有没有什么好办法呢? 很显然是有的,那就今天就来看看Android最常用的组件之一的EditText,虽然之前用的也是EditText,但是侧重点其实是自定义控件,

Android UI组件进阶(2)——仿Windows对话框

Android UI组件进阶(2)--仿Windows对话框 在开始本章前先祝大家中秋节快乐哈,相信很多上班的朋友都是放三天假的哈! 有时间的话回家陪陪父母吧!树欲静而风不止,子欲养而亲不待!岁月不饶人! 好了,道理和祝福语就说到这里了,今天给大家准备的是模仿Windows风格对话框! 效果图: 相信大部分的AlertDialog都是下面这个样子的: 今天给大家讲解的对话框是下面这样的: 对比两种对话框,站在用户的角度,相信你更加钟情于第二种颜色鲜明的对话框 好了下面就开始讲解如何制作模仿win

Android 高级UI设计笔记08:Android开发者常用的7款Android UI组件(转载)

Android开发是目前最热门的移动开发技术之一,随着开发者的不断努力和Android社区的进步,Android开发技术已经日趋成熟,当然,在Android开源社区中也涌现了很多不错的开源UI项目,它们可以帮助Android开发者更方便快捷地完成想要的功能.本文是Android系列的第一篇,主要是向大家推荐一些常用的Android UI组件,它们都是开源的. 1.图表引擎 -  AChartEngine AChartEngine是一款基于Android的图表绘制引擎,它为Android开发者提供

Android UI 组件 » GifView

GifView 是一个为了解决android中现在没有直接显示gif的view,只能通过mediaplay来显示这个问题的项目,其用法和 ImageView一样,支持gif图片 使用方法: 1-把GifView.jar加入你的项目. 2-在xml中配置GifView的基本属性,GifView继承自View类,和Button.ImageView一样是一个UI控件.如: <com.ant.liao.GifView android:id="@+id/gif2" android:layo

7款Android开发者常用的Android UI组件

7款Android开发者常用的Android UI组件 原文  http://news.cnblogs.com/n/506366/ Android 开发是目前最热门的移动开发技术之一,随着开发者的不断努力和 Android 社区的进步,Android 开发技术已经日趋成熟,当然,在 Android 开源社区中也涌现了很多不错的开源 UI 项目,它们可以帮助 Android 开发者更方便快捷地完成想要的功能.本文是 Android 系列的第一篇,主要是向大家推荐一些常用的 Android UI 组

Android UI组件----自定义ListView实现动态刷新

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3910541.html 联系方式:[email protected] [正文] 一.具体步骤: (1)在activiy_main.xml中加一个ListView控件:再添加一个item的模板activity_main_item.xml,加一个底部加载的视图activity_main_load.xml

Android UI组件进阶(1)——带进度条的按钮

Android UI组件进阶(1)--带进度条的按钮 本节引言: 这个系列是继Android UI组件实例大全后的进阶系列,在该系列中我们将进一步的学习 Android UI组件,建议阅读本系列前线学习下UI组件实例大全系列,掌握基本组件的使用; 当然你也可以直接学习本系列!好了,废话不多说,直接开始第一节吧!本节要演示的是: 带进度条的按钮!相信大家在360手机助手到看到这个东东吧: 本节要实现的就是下方这个点击后显示进度的按钮 效果图: 必备基础: 1.进度条的一些属性: backgroun

Android UI组件之DatePicker,TimePicker

一直都是在博客园和csdn上看各种大牛的技术博客,终于忍不住要开始自己写博客,希望一起成长,我会把自己的学习的过程放到博客里,但同时我更愿意贴出的是我碰到的错误.也欢迎网友来指导与纠正,大家一起进步,更希望的是自己能够坚持写博客. 废话不多说,直接进入正题,最近在学习android开发,对于这些界面的开发,最重要的就是一堆控件的使用了.今天登场的就是DatePicker和TimePicker.既然要学习,那就需要有学习的资料.碰到一个新的东西最自然的想法就是去搜一下.网上相关的文章也是一大堆.再

Android UI组件之自定义控件实现IP地址控件

趁着时间挺充裕,就多写几篇博客.每一篇都是学习中的教训.今天在做东西的时候突然想到之前在MFC的时候都会有一个IP地址控件,可能是PC端用的比较多,但是在移动端好像基本没什么用处,但是偶尔也会有项目要用到,毕竟还是有些项目不需要接入互联网,只需要接入企业的内部网络.这个时候为了程序的通用性,我想到的第一个就是在程序中去配置一个网络环境,并将它保存到本地中,这样以后程序每次加载直接去本地中获取值.既然没有已有的控件,那么久自定义好了.存储在本地首先想到的就是sqlite和SharedPrefere