zoukankan      html  css  js  c++  java
  • Android的编码规范

     

    一、Android编码规范

      1、学会使用string.xml文件

      在我看来,当一个文本信息出现的次数大于一次的时候就必须要使用string.xml

      比如一个保存按钮 , 不规范写法:

    复制代码
          <Button
                android:id="@+id/editinfo_btn_save"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"       
                android:text="保存"
                />
    复制代码

      这里给它的文本内容设置为"保存",那么一个app中所有的保存按钮都这样写。当有一天要修改需求了,要求把“保存”文字改成“提交”,那么我们只能去一个个布局文件中修改,

      岂不浪费大量时间又可能会存在漏掉修改的情况。

      规范写法:

    复制代码
          <Button
                android:id="@+id/editinfo_btn_save"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"       
                android:text="@string/save"
                />
    复制代码

      而在string.xml文件中:

        <string name="save">保存</string>

      这种写法,往后需要修改,只需要在string.xml文件中修改一行代码 便实现了整个APP的该文本内容修改。

      

      2、学会使用color.xml ,dimens.xml文件的使用

      同string.xml使用一致,同学们应该都懂的,切勿因为一时的懒,导致后期的迭代费时费力。

      

      3、团队协同确定一套标准Activity的onCreate()方法中代码执行流程

      其实刚接触Android的时候,我的不规范代码是这样的:

    复制代码
       private Button scan;            //扫描按钮
        private Button create;          //创建按钮
        private ArrayList<Object> datas; //数据源
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            create = (Button) findViewById(R.id.create);
            scan = (Button) findViewById(R.id.scan);
            scan.setOnClickListener(this);
            create.setOnClickListener(this);
            datas = new ArrayList<>();
            datas.add(new Integer(1));
            datas.add(new Integer(2));
            datas.add(new Integer(3));
            datas.add(new Integer(4));
        }
    复制代码

      什么都不管,所有的操作代码都写在onCreate()方法中,包括find控件。设置监听事件,加载数据源等等。

      可以看到现在就2个控件一个数据源,代码就这么多了,如果一个界面有10多个控件呢,那onCreate()方法中的代码量就成倍数的多起来了。

      所以所有的Activity都要设定一个统一的规范。

      我们都知道,一个Activity中有基本都有的操作:

        ①、初始化变量

        ②、初始化控件

        ③、设置监听事件

        ④、加载网络数据并显示

      那么就可以将以上的代码分门别类的放在这几个方法中

      比如一段规范代码:

    复制代码
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        private Button btn_scan;            //扫描按钮
        private Button btn_create;          //创建按钮
        private ArrayList<Object> datas; //数据源
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initVariables();
            initView();
            initEvent();
            loadData();
        }
    
        //初始化变量,比如 上一个Activity传来的Intent的数据  本Activity中一些标记变量等
        private void initVariables() {
    
        }
    
        //加载数据源
        private void loadData() {
        }
    
        //注册监听事件
        private void initEvent() {
            btn_scan.setOnClickListener(this);
            btn_create.setOnClickListener(this);
        }
    
        //初始化控件
        private void initView() {
            btn_create = (Button) findViewById(R.id.create);
            btn_scan = (Button) findViewById(R.id.scan);
        }
    
        //设置点击事件
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.btn_scan:
                    //扫描二维码
                    startActivity(new Intent(this,ScanActivity.class));
                    break;
                case R.id.btn_create:
                    //生成二维码
                    startActivity(new Intent(this,CreateActivity.class));
                    break;
            }
        }
    }
    复制代码

        可以看到,onCreate()中就那么几个方法了,我们需要找问题的时候在相应的方法中去找即可,既方便又清晰。

        其实这种操作我们可以写一个BaseActivity作为它的的抽象方法,然后让Activity继承这个BaseActivity基类重写方法即可,涉及到架构,这个往后再说。

      4、团队协同确定一种控件的点击事件OnClickListener()

        Android给我们提供5种给控件设置OnClick的方法,个人觉得项目中用的最多的就是

       ①、参数this 然后Activity 实现 View.OnClickListener接口  重写 onClick()方法

    btn_create.setOnClickListener(this);

         ②、直接参数new OnclickListener()的

    复制代码
    btn_create.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    
                }
            });
    复制代码

       其他三个方法个人觉得尽量不要用。而这两种方法中第一种 是更好的,因为我们可以通过switch--case 的方法区分不同控件的点击事件,代码更清晰简约。

         当然第二种方法也是可以的,但是切记同一个项目中最好只有一种方式,便于后期的维护。

    复制代码
      //设置点击事件
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.scan:
                    //扫描二维码
                    startActivity(new Intent(this,ScanActivity.class));
                    break;
                case R.id.create:
                    //生成二维码
                    startActivity(new Intent(this,CreateActivity.class));
                    break;
            }
        }
    复制代码

       

    --------------------------------------------------------------------------------------------------------------------------

    二、Android命名规范

      命名规范:驼峰法,下划线分割法。

      1、Java类文件

      ①、Activity:以Activity作为后缀,这个相信大家AS给你的都帮你做好了。

      ②、Adapter: 以Adapter作为后缀

      ③、ViewHolder: 以ViewHolder作为后缀

      ④、实体类Entity:以Entity作为后缀

       

      如下,我是以功能模块分包,大神勿喷,个人喜好:

      

      2、xml文件

      ①、layout.xml

        Activity的布局文件以activity_ 开头,AS提供的。

        列表项的布局文件listview  以 item_list_开头。

      ②、控件的命名

        缩写,这个看个人了,

        我的经验,比如:

        LayoutView    ----    lv

        TextView        ----    tv

               Button          ----    btn

        ImageView     ----    img

      切记,不要使用拼音命名,即使英文这么菜的博主我开发都开着有道词典。

      最后,编码一定要写注释,你命名的如果英文不是立马能看懂的,请一定要写上注释。

  • 相关阅读:
    Python冒泡排序(4)
    Python冒泡排序(3)
    Python3默认递归最大深度是998
    Python利用递归函数和列表推导式实现快速排序
    天池比赛的文章--欢迎大家交流
    caffe学习笔记1
    网络压缩系列1:低秩逼近
    yolov1
    Windows下用Caffe跑自己的数据(遥感影像)
    基于灰度共生矩阵的纹理提取
  • 原文地址:https://www.cnblogs.com/qq1272850043/p/6202872.html
Copyright © 2011-2022 走看看