Android 基类怎么写

在Android开发中,我们经常会遇到需要编写多个Activity或Fragment的情况,为了提高代码的复用性和可维护性,我们可以编写一个基类来封装一些共同的功能和逻辑。本文将提出一个项目方案,介绍如何设计和编写一个通用的Android基类。

项目方案

功能需求

我们需要设计一个基类,用于封装一些常用的功能和逻辑,例如初始化界面、处理权限申请、网络请求等。该基类可以作为其他Activity或Fragment的父类,让子类可以继承这些通用的功能。

设计方案

我们将设计一个BaseActivity作为Activity的基类,同时也可以设计一个BaseFragment作为Fragment的基类。这样可以分别处理Activity和Fragment的共同功能和逻辑。

代码实现

BaseActivity
public abstract class BaseActivity extends AppCompatActivity {

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        initView();
        initData();
    }

    protected abstract void initView();

    protected abstract void initData();

    // 可以添加其他通用方法
}
BaseFragment
public abstract class BaseFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(getLayoutId(), container, false);
        initView(view);
        initData();
        return view;
    }

    protected abstract int getLayoutId();

    protected abstract void initView(View view);

    protected abstract void initData();

    // 可以添加其他通用方法
}

状态图

stateDiagram
    [*] --> BaseActivity
    BaseActivity --> BaseActivity:initView
    BaseActivity --> BaseActivity:initData
    [*] --> BaseFragment
    BaseFragment --> BaseFragment:getLayoutId
    BaseFragment --> BaseFragment:initView
    BaseFragment --> BaseFragment:initData

类图

classDiagram
    class BaseActivity {
        - onCreate()
        - initView()
        - initData()
    }

    class BaseFragment {
        - onCreateView()
        - getLayoutId()
        - initView()
        - initData()
    }

    BaseActivity <|-- BaseFragment

结尾

通过设计和编写一个通用的Android基类,我们可以提高代码的复用性和可维护性,减少重复的代码编写,提升开发效率。希望本文提出的项目方案能对你有所帮助。如果有任何问题或建议,欢迎留言讨论。