android 之 Baseactivity 和BaseFragment

原创 2016年08月30日 15:30:18
  1. baseActivity
/**
 * @author 作者名 易皇星
 * @email 邮箱名 15095887072@163.com
 * @time 2016-5-14 2016-05
 * @TODO 缘分是本书,翻得不经意会错过,读得太认真会流泪!
 */

public abstract class BaseActivity extends FragmentActivity implements OnClickListener{
    protected final SparseArray<View> mViews = new SparseArray<View>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(initLayout(savedInstanceState));

        /**
         * 加载视图
         */
        initLayout(savedInstanceState);
        /**
         * 初始化控件
         */
        initView(savedInstanceState);
        /**
         * 
         * 初始化数据
         */
        initData(savedInstanceState);
        /**
         * 添加事件监听对象
         */
        initListener(savedInstanceState);



    }

    /**
     * 再也不需要每次都findViewById
     * 
     * @param resId    控件的id
     * @return
     */
    protected <V extends View> V getView(int resId) {
        return bindView(resId);

    }

    private <V extends View> V bindView(int resId) {
        View view = mViews.get(resId);
        if (view == null) {
            view = findViewById(resId);
            mViews.put(resId, view);
        }
        return (V) view;

    }

    protected abstract int initLayout(Bundle savedInstanceState);

    protected abstract void initView(Bundle savedInstanceState);

    protected abstract void initData(Bundle savedInstanceState);

    protected abstract void initListener(Bundle savedInstanceState);
    /**
     * 
     * @param view 事件监听
     */
    protected abstract void widgetClick(View view);


    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if(fastClick()){
            widgetClick(v);
        }
    }

    private long lastClick =0;
    /**
     * 
     * @return 控制短时间内重复点击事件----看个人爱好而定
     */
    private boolean fastClick(){
        if(System.currentTimeMillis()-lastClick<=500){
            return false;
        }

        lastClick=System.currentTimeMillis();
        return true;

    }
}

2.baseFragment

/** 
 * @author 作者名 易皇星
 * @email  邮箱名 15095887072@163.com
 * @time   2016-5-14 2016-05
 * @TODO 缘分是本书,翻得不经意会错过,读得太认真会流泪!
 */

public abstract class BaseFragment extends Fragment implements OnClickListener{

    protected Context mcontext;

    private static final String tag = "BaseFragment";

    protected View mRootVie;

    protected final SparseArray<View> mViews = new SparseArray<View>();

     @Override
        public void onCreate( Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            mcontext=getActivity();


        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) {
             if (mRootView == null) {
                    mRootView = inflater.inflate(getLayoutId(), container, false);
                    onViewInflated();

                    setListener();

                }
                return mRootView;
        }
/**
 * 
 *    用get代替findViewById();
 * @param resId
 * @return
 */

        protected <V extends View> V get(int resId){
            return bindView(resId);

        }

        private <V extends View > V bindView(int resId){
            View view = mViews.get(resId);
            if(view==null){
                 view = mRootView.findViewById(resId);
                    mViews.put(resId, view);
            }
            return (V) view;

        }

        /**
         *   加载布局
         * @return
         */

        protected abstract int getLayoutId();

        /**
         * 初始化控件
         */


        protected abstract void onViewInflated();
        /**
         * 添加事件监听对象
         */
        protected abstract void setListener();


        /**
         * 
         * @param view 事件监听
         */
        protected abstract void widgetClick(View view);



    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if (fastClick()) {
            widgetClick(v);
        }

    }

    private long lastClick = 0;

    /**
     * 
     * @return 控制短时间内重复点击事件----看个人爱好而定
     */
    private boolean fastClick() {
        if (System.currentTimeMillis() - lastClick <= 500) {
            return false;
        }

        lastClick = System.currentTimeMillis();
        return true;

    }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

android 之 Baseactivity 和BaseFragment

baseActivity /** * @author 作者名 易皇星 * @email 邮箱名 15095887072@163.com * @time 2016-5-14 2016-05 * ...

BaseActivity、BaseFragment

来自鸿洋大神的微信公众号,mark一下 开发者经常需要的就是对控件的findViewById,setOnClickListener、有的用到注解的方式绑定控件,如:Butterknife等,有的用...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

从BaseActivity与BaseFragment的封装谈起 不错的文章

源至Hongyang微信公众号,博客源址:从BaseActivity与BaseFragment的封装谈起 源码地址AndroidStudio开发环境:源码下载 这篇博客...

从BaseActivity与BaseFragment的封装谈起

这篇博客主要是从BaseActivity与BaseFragment的封装开始,总结自己在实战开发中关于Fragment的注意事项以及心得体会。先看以下效果图: 这里模拟的是用户登录模块,你可...

项目优化-BaseActivity和BaseFragment

明眼人一看便知,直接上代码:BaseActivitypackage com.laundrylangpickcargo.activity;import android.content.Broadcast...

如何在BaseFragment中直接调用BaseActivity中相关属性代码的问题

通常我们要写多个Activity时,很多属性是相同的,为了减少代码量,我们通常写一个BaseActivity来继承自Activity,再让其他的新创建的Activity继承自BaseActivity即...

BaseActivity和BaseFragment 的封装

修改BaseActiviy的继承为Fragment(可以实现dialogfragment)增加isDebug和APP_NAME,在Application中声明,方便日志打印,区分测试版本和正式版本添加...

Android BaseActivity、BaseFragment等 常用方法封装

BaseActivity、BaseFragment等 常用方法封装 Log类的封装

BaseActivity与BaseFragment的封装

这篇博客主要是从BaseActivity与BaseFragment的封装开始,总结我们在实战开发中关于Fragment的注意事项以及心得体会。先看以下效果图:这里模拟的是用户登录模块,你可能会说,很普...

Android谈谈封装那些事--BaseActivity和BaseFragment(二)

1.前言昨天谈了BaseActivity的封装, Android谈谈封装那些事–BaseActivity和BaseFragment(一) 有很多小伙伴提了很多建议,比如: 通用标题栏可以自定义Vi...
  • lyhhj
  • lyhhj
  • 2016-12-26 21:06
  • 5499
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)