Java tutorial
/* * Copyright (c) 2016 DreamLiner Studio * Licensed under the Apache License, Version 2.0 (the "License?); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package cn.chenzhongjin.eventbus.sample.ui.base; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import org.greenrobot.eventbus.EventBus; import butterknife.ButterKnife; import butterknife.Unbinder; /** * @??: BaseFragment * @??: * @Create by chenzj on 2016/1/30 16:58 * @email: chenzj@sq580.com * @: */ public abstract class BaseFragment extends Fragment { protected View view; protected BaseActivity context; private Unbinder mUnbinder; protected boolean isRegisterEvent() { return true; } protected abstract int getLayoutId(); protected void initSpecialView(View view) { mUnbinder = ButterKnife.bind(this, view); } protected abstract void initViews(View view); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (isRegisterEvent()) { EventBus.getDefault().register(this); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { context = (BaseActivity) getActivity(); if (null != view) { ViewGroup parent = (ViewGroup) view.getParent(); if (null != parent) { parent.removeView(view); } } else { view = inflater.inflate(getLayoutId(), container, false); } return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initSpecialView(view); initViews(view); } @Override public void onDestroyView() { if (null != mUnbinder) { mUnbinder.unbind(); } super.onDestroyView(); } @Override public void onDestroy() { super.onDestroy(); if (isRegisterEvent()) EventBus.getDefault().unregister(this); } public View findViewById(int paramInt) { return getView().findViewById(paramInt); } /** * startActivity * * @param clazz */ protected void readyGo(Class<?> clazz) { Intent intent = new Intent(getActivity(), clazz); startActivity(intent); } /** * startActivity with bundle * * @param clazz * @param bundle */ protected void readyGo(Class<?> clazz, Bundle bundle) { Intent intent = new Intent(getActivity(), clazz); if (null != bundle) { intent.putExtras(bundle); } startActivity(intent); } /** * startActivityForResult * * @param clazz * @param requestCode */ protected void readyGoForResult(Class<?> clazz, int requestCode) { Intent intent = new Intent(getActivity(), clazz); startActivityForResult(intent, requestCode); } /** * startActivityForResult with bundle * * @param clazz * @param requestCode * @param bundle */ protected void readyGoForResult(Class<?> clazz, int requestCode, Bundle bundle) { Intent intent = new Intent(getActivity(), clazz); if (null != bundle) { intent.putExtras(bundle); } startActivityForResult(intent, requestCode); } /** * Eventbus * * @param event */ public void postEvent(Object event) { EventBus.getDefault().post(event); } public void showToast(final String msg) { context.showToast(msg); } public void showToast(final int resId) { context.showToast(resId); } }