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