封装Activity

来源:互联网 发布:词典软件 推荐 编辑:程序博客网 时间:2024/06/03 19:56

编写一个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;                }            }        });    }}