目录

一、BaseFragment基类的封装

二、继承基类BaseFragment的Fragment的使用事例 


 

 

一、BaseFragment基类的封装

public abstract class BaseFragment extends Fragment {    //获取TAG的fragment名称    protected final String TAG = this.getClass().getSimpleName();    public Context context;    /**     * 封装Toast对象     */    private static Toast toast;    @Override    public void onAttach(Context ctx) {        super.onAttach(ctx);        context = ctx;    }    @Nullable    @Override    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View rootView = inflater.inflate(initLayout(), container, false);        initView(rootView);        initData(context);        return rootView;    }    /**     * 初始化布局     *     * @return 布局id     */    protected abstract int initLayout();    /**     * 初始化控件     *     * @param view 布局View     */    protected abstract void initView(final View view);    /**     * 初始化、绑定数据     *     * @param mContext 上下文     */    protected abstract void initData(Context mContext);    /**     * 保证同一按钮在1秒内只响应一次点击事件     */    public abstract class OnSingleClickListener implements View.OnClickListener {        //两次点击按钮的最小间隔,目前为1000        private static final int MIN_CLICK_DELAY_TIME = 1000;        private long lastClickTime;        public abstract void onSingleClick(View view);        @Override        public void onClick(View v) {            long curClickTime = System.currentTimeMillis();            if ((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {                lastClickTime = curClickTime;                onSingleClick(v);            }        }    }    /**     * 同一按钮在短时间内可重复响应点击事件     */    public abstract class OnMultiClickListener implements View.OnClickListener {        public abstract void onMultiClick(View view);        @Override        public void onClick(View v) {            onMultiClick(v);        }    }    /**     * 显示提示  toast     *     * @param msg 提示信息     */    @SuppressLint("ShowToast")    public void showToast(String msg) {        try {            if (null == toast) {                toast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);            } else {                toast.setText(msg);            }            toast.show();        } catch (Exception e) {            e.printStackTrace();            //解决在子线程中调用Toast的异常情况处理            Looper.prepare();            Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();            Looper.loop();        }    }    @Override    public void onDestroy() {        super.onDestroy();    }}

 

二、继承基类BaseFragment的Fragment的使用事例 

public class TestFragment extends BaseFragment {    @Override    protected int initLayout() {        //初始化布局        return R.layout.fragment_dapeiding;    }    @Override    protected void initView(View view) {        //初始化控件        Button button = new Button(context);        button.setText("click");        //每秒只响应一次点击事件        button.setOnClickListener(new OnSingleClickListener() {            @Override            public void onSingleClick(View view) {            }        });        //每秒可以重复响应点击事件        button.setOnClickListener(new OnMultiClickListener() {            @Override            public void onMultiClick(View view) {            }        });    }    @Override    protected void initData(Context mContext) {        //初始化、绑定数据    }}

 

 

                                                                                                  结束!

 

 

更多相关文章

  1. android 中webview的屏幕适配问题
  2. android 自定义视图——onMeasure,MeasureSpec源码 流程 思路详解
  3. Android(安卓)动态设置控件的布局
  4. Android(安卓)OpenGL ES 开发教程(7):创建实例应用OpenGLDemos程
  5. Android的frameworks层音量控制原理分析
  6. 【Android】Android(安卓)Input
  7. [Android]滑动冲突之内部拦截法
  8. android 性能优化 小技巧
  9. Android实现点击事件的三种方法

随机推荐

  1. 浮动,消除浮动,BFC,定位,固定定位模态框
  2. 数组函数练习
  3. PHP常用的数组函数
  4. 运算符与分支和循环结构的替代语句,以及
  5. 数组排序-合并-成员统计-交差并补
  6. 函数的定义和调用,函数的参数,函数的返回值
  7. php数组的排序|数组的合并
  8. 指向函数指针数组的指针
  9. 0127-php运算符,分支与循环结构 ,include
  10. [计算机视觉论文速递] 2018-05-08