BaseFragment基类封装

来源:互联网 发布:淘宝2013版本下载 编辑:程序博客网 时间:2024/06/11 16:25
** * Fragment基类 * Created by guo on 2017/6/19. */public  abstract class BaseFragment extends Fragment implements View.OnClickListener{    /**     * 设置onCreateView     * @return R.layout.xxx     */    protected abstract int getLayoutId();    /**     * 初始化View     */    protected abstract void initView(View view);    /**     * add Listener     */    protected abstract void setListener();    /**     * view点击     * @param v     */    public abstract void widgetClick(View v);    private View view;    private Context context;    /**     * fragment和activity被关联时调用     *     */    @Override    public void onAttach(Context context) {        super.onAttach(context);        this.context=context;    }    /**     * fragment和activity去关联时调用。     */    @Override    public void onDetach() {        super.onDetach();        this.context=null;    }    /**     *     *创建fragment的UI被初始化时调用     */    @Override    public View onCreateView(LayoutInflater inflater,  ViewGroup container, Bundle savedInstanceState) {        view=inflater.inflate(getLayoutId(),null);        initView(view);        setListener();        return view;    }    @Override    public void onClick(View v) {        if (fastClick())            widgetClick(v);    }    private long lastClick = 0;    private boolean fastClick() {        if (System.currentTimeMillis() - lastClick <= 1000) {            return false;        }        lastClick = System.currentTimeMillis();        return true;    }    /**     *findViewById()     * @param id     * @param <T>     * @return     */    protected  <T extends View> T $findViewById(int id) {        return (T) view.findViewById(id);    }    /**     * Toast     */    protected void $toast(CharSequence msg) {        Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();    }    /**     * 网络是否可用     *     * @param context     * @return     */    protected  boolean isNetworkAvailable(Context context) {        ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);        NetworkInfo[] info = mgr.getAllNetworkInfo();        if (info != null) {            for (int i = 0; i < info.length; i++) {                if (info[i].getState() == NetworkInfo.State.CONNECTED) {                    return true;                }            }        }        return false;    }}
原创粉丝点击