Android 开发之 BaseFragment

xiaoxiao2021-02-27  410

在开发中,我们常常会抽取 Fragment 中常用的方法如跳转、带参数跳转、ButterKnife、吐司等方法到 BaseFragment 中。下面来看看我抽取了哪些常用的方法呢?

import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import butterknife.ButterKnife; /** * Created on 2019/11/29 13:52 * * @author Gong Youqiang */ public abstract class BaseFragment extends Fragment { @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //子类不再需要设置布局ID,也不再需要使用ButterKnife.bind() View rootView = inflater.inflate(getLayoutId(), container, false); ButterKnife.bind(this, rootView); initView(); return rootView; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initData(); } public void initView(){ } public void initData(){ } protected abstract int getLayoutId(); /** * 不带参数的跳转 * * @param clazz 跳转到的目标类 */ protected void readyGo(final Class<?> clazz) { Intent intent = new Intent(getActivity(), clazz); startActivity(intent); } /** * 带参数的跳转 * * @param clazz 跳转到的目标类 * @param bundle 参数 */ protected void readyGo(final Class<?> clazz, final Bundle bundle) { Intent intent = new Intent(getActivity(), clazz); if (bundle != null) { intent.putExtras(bundle); } startActivity(intent); } /** * 跳转且返回结果 * * @param clazz 跳转到的目标类 * @param requestCode 请求码 */ protected void readyGoForResult(final Class<?> clazz, final int requestCode) { Intent intent = new Intent(getActivity(), clazz); startActivityForResult(intent, requestCode); } /** * 带参数跳转且返回结果 * * @param clazz 跳转到的目标类 * @param requestCode 请求码 * @param bundle 参数 */ protected void readyGoForResult(final Class<?> clazz, final int requestCode, final Bundle bundle) { Intent intent = new Intent(getActivity(), clazz); if (bundle != null) { intent.putExtras(bundle); } startActivityForResult(intent, requestCode); } }
转载请注明原文地址: https://www.6miu.com/read-2023.html

最新回复(0)