• 为你的Android应用定制属于你的BaseActivity


    相信大家在开发Android应用的过程中肯定碰到过很多重复的工作,写着重复的代码,有时候连布局文件也是一样,需要重复的劳动,那么这样对于我们程序来讲肯定是很累很繁琐的一件事,所以我们在写代码的时候是否需要去考虑让我们写更少的代码,程序员要学会偷懒,否则……..
    在开发应用程序的时候我们的设计其实整体的样式是统一,那么我们就可以写一些公用的代码,这样对程序来讲也便于后面的维护,废话也不多说了,相信大家肯定也懂的,今天我分享给大家的就是定制一个属于自己的BaseActivity,这个BaseActivity主要封装了一些公用的代码,例如我们在开发过程中上面的那些标题和按钮肯定都要有的,所以我们可以把这些公用的都写在这个BaseActivity,其他功能的Activity以后都继承这个BaseActivity.
     
    先上效果图

    效果图看了,大家是否有所启发或是有所了解呢?那么接下来就放BaseActivity里的核心代码咯:

    /**
     * 继承于Activity用于以后方便管理
     * 
     * @author coder
     * 
     */
    public class BaseActivity extends Activity {
    
            private View titleView;
            private TextView tv_title;
            private Button btn_left, btn_right;
    
            private LinearLayout ly_content;
            // 内容区域的布局
            private View contentView;
    
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                    // TODO Auto-generated method stub
                    super.onCreate(savedInstanceState);
    
                    setContentView(R.layout.common_title);
                    titleView = findViewById(R.id.titleView);
                    tv_title = (TextView) titleView.findViewById(R.id.tv_title);
                    btn_left = (Button) titleView.findViewById(R.id.btn_left);
                    btn_right = (Button) titleView.findViewById(R.id.btn_right);
    
                    ly_content = (LinearLayout) findViewById(R.id.ly_content);
            }
    
            /***
             * 设置内容区域
             * 
             * @param resId
             *            资源文件ID
             */
            public void setContentLayout(int resId) {
    
                    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    contentView = inflater.inflate(resId, null);
                    LayoutParams layoutParams = new LayoutParams(LayoutParams.FILL_PARENT,
                                    LayoutParams.FILL_PARENT);
                    contentView.setLayoutParams(layoutParams);
                    contentView.setBackgroundDrawable(null);
                    if (null != ly_content) {
                            ly_content.addView(contentView);
                    }
    
            }
    
            /***
             * 设置内容区域
             * 
             * @param view
             *            View对象
             */
            public void setContentLayout(View view) {
                    if (null != ly_content) {
                            ly_content.addView(view);
                    }
            }
    
            /**
             * 得到内容的View
             * 
             * @return
             */
            public View getLyContentView() {
    
                    return contentView;
            }
    
            /**
             * 得到左边的按钮
             * 
             * @return
             */
            public Button getbtn_left() {
                    return btn_left;
            }
    
            /**
             * 得到右边的按钮
             * 
             * @return
             */
            public Button getbtn_right() {
                    return btn_right;
            }
    
            /**
             * 设置标题
             * 
             * @param title
             */
            public void setTitle(String title) {
    
                    if (null != tv_title) {
                            tv_title.setText(title);
                    }
    
            }
    
            /**
             * 设置标题
             * 
             * @param resId
             */
            public void setTitle(int resId) {
                    tv_title.setText(getString(resId));
            }
    
            /**
             * 设置左边按钮的图片资源
             * 
             * @param resId
             */
            public void setbtn_leftRes(int resId) {
                    if (null != btn_left) {
                            btn_left.setBackgroundResource(resId);
                    }
    
            }
    
            /**
             * 设置左边按钮的图片资源
             * 
             * @param bm
             */
            public void setbtn_leftRes(Drawable drawable) {
                    if (null != btn_left) {
                            btn_left.setBackgroundDrawable(drawable);
                    }
    
            }
    
            /**
             * 设置右边按钮的图片资源
             * 
             * @param resId
             */
            public void setbtn_rightRes(int resId) {
                    if (null != btn_right) {
                            btn_right.setBackgroundResource(resId);
                    }
            }
    
            /**
             * 设置右边按钮的图片资源
             * 
             * @param drawable
             */
            public void setbtn_rightRes(Drawable drawable) {
                    if (null != btn_right) {
                            btn_right.setBackgroundDrawable(drawable);
                    }
            }
    
            /**
             * 隐藏上方的标题栏
             */
            public void hideTitleView() {
    
                    if (null != titleView) {
                            titleView.setVisibility(View.GONE);
                    }
            }
    
            /**
             * 隐藏左边的按钮
             */
            public void hidebtn_left() {
    
                    if (null != btn_left) {
                            btn_left.setVisibility(View.GONE);
                    }
    
            }
    
            /***
             * 隐藏右边的按钮
             */
            public void hidebtn_right() {
                    if (null != btn_right) {
                            btn_right.setVisibility(View.GONE);
                    }
    
            }
    
            public BaseActivity() {
    
            }
    
    }
    

      接下来再给出其中的一个用法就可以了:

    public class TwoBtnActivity extends BaseActivity {
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                    // TODO Auto-generated method stub
                    super.onCreate(savedInstanceState);
    
                    setContentLayout(R.layout.two);
    
                    //设置标题
                    setTitle("两个按钮");
    
    
    
                    // 为左边的按钮增加监听事件
                    getbtn_left().setOnClickListener(new OnClickListener() {
    
                            @Override
                            public void onClick(View v) {
                                    onBackPressed();
    
                            }
                    });
    
            }
    
    }
    

      好了大功告成了,这个万能的BaseActivity是不是很好用呀,希望这样的一个小小的分享能对大家有所帮助咯

    热爱Android开发的朋友们,有兴趣可以加入群一起交流哈~252742977(上海)253604146(厦门)

     

  • 相关阅读:
    不为人知easy-mock-cli
    javascript设计模式之适配器模式
    js --装饰者模式
    使用策略模式封装拦截器
    js --桥接模式
    深入理解面向对象 -- 基于 JavaScript 实现
    设计模式 -- 观察者模式
    敏捷开发
    从技术走向管理
    Vue Cli安装以及使用
  • 原文地址:https://www.cnblogs.com/feifei1010/p/2642002.html
Copyright © 2020-2023  润新知