编写一个Activity基类,对Activity进行封装,方便使用
1、新建抽象类BaseActivity继承AppCompatActivity,并实现OnClickListener接口
- <span style="font-size:24px;">public abstract class BaseActivity extends AppCompatActivity{
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- //获取布局
- setContentView(getLayoutId());
- //调用方法
- initView();
- initData();
- onCheckedChanged();
- }
- //监听事件
- protected abstract void onCheckedChanged();
- protected abstract int getLayoutId();
- /**
- * 初始化View
- */
- protected abstract void initView();
- /**
- * 初始化数据
- */
- protected abstract void initData();
- }</span>
- <span style="font-size:24px;">public class MainActivity extends BaseActivity {
- private RadioGroup rg;
- private FragmentManager manager;
- List<Fragment> fragmentlist=new ArrayList<>();
- /**
- * 初始化View
- */
- @Override
- protected void initView() {
- //获取控件
- rg = findViewById(R.id.rg);
- // 把fragment添加到集合
- initData();
- //获取管理者
- manager = getSupportFragmentManager();
- manager.beginTransaction().add(R.id.fl,fragmentlist.get(0)).commit();
- }
- //把布局id穿过去
- @Override
- protected int getLayoutId() {
- return R.layout.activity_main;
- }
- /**
- * 初始化数据
- */
- @Override
- protected void initData() {
- f1 f1=new f1();
- f2 f2=new f2();
- f3 f3=new f3();
- f4 f4=new f4();
- f5 f5=new f5();
- fragmentlist.add(f1);
- fragmentlist.add(f2);
- fragmentlist.add(f3);
- fragmentlist.add(f4);
- fragmentlist.add(f5);
- }
- @Override
- protected void onCheckedChanged() {
- //给RadioGroup添加监听事件
- rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(RadioGroup radioGroup, int i) {
- switch (i){
- case R.id.rb1:
- manager.beginTransaction().replace(R.id.fl, fragmentlist.get(0)).commit();
- break;
- case R.id.rb2:
- manager.beginTransaction().replace(R.id.fl, fragmentlist.get(1)).commit();
- break;
- case R.id.rb3:
- manager.beginTransaction().replace(R.id.fl, fragmentlist.get(2)).commit();
- break;
- case R.id.rb4:
- manager.beginTransaction().replace(R.id.fl, fragmentlist.get(3)).commit();
- break;
- case R.id.rb5:
- manager.beginTransaction().replace(R.id.fl, fragmentlist.get(4)).commit();
- break;
- }
- }
- });
- }
- }</span>