编写一个Activity基类,对Activity进行封装,方便使用
1、新建抽象类BaseActivity继承AppCompatActivity,并实现OnClickListener接口
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();
}
2.继承BaseActivity,重写里面的抽象方法.要删除里边的Oncreate()方法
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;
}
}
});
}
}