编写一个Activity基类,对Activity进行封装,方便使用

编写一个Activity基类,对Activity进行封装,方便使用

1、新建抽象类BaseActivity继承AppCompatActivity,并实现OnClickListener接口

[java]  view plain  copy
  1. <span style="font-size:24px;">public abstract class  BaseActivity extends AppCompatActivity{  
  2.   
  3.     @Override  
  4.     protected void onCreate(@Nullable Bundle savedInstanceState) {  
  5.         super.onCreate(savedInstanceState);  
  6.         //获取布局  
  7.         setContentView(getLayoutId());  
  8.         //调用方法  
  9.         initView();  
  10.         initData();  
  11.         onCheckedChanged();  
  12.   
  13.     }  
  14.   
  15.     //监听事件  
  16.     protected abstract void onCheckedChanged();  
  17.   
  18.     protected abstract int getLayoutId();  
  19.   
  20.     /** 
  21.      * 初始化View 
  22.      */  
  23.     protected abstract void initView();  
  24.   
  25.   
  26.     /** 
  27.      * 初始化数据 
  28.      */  
  29.     protected abstract void initData();  
  30.   
  31. }</span>  
2.继承BaseActivity,重写里面的抽象方法.要删除里边的Oncreate()方法

[java]  view plain  copy
  1. <span style="font-size:24px;">public class MainActivity extends BaseActivity {  
  2.   
  3.     private RadioGroup rg;  
  4.     private FragmentManager manager;  
  5.     List<Fragment> fragmentlist=new ArrayList<>();  
  6.   
  7.   
  8.     /** 
  9.      * 初始化View 
  10.      */  
  11.     @Override  
  12.     protected void initView() {  
  13.         //获取控件  
  14.         rg = findViewById(R.id.rg);  
  15.         // 把fragment添加到集合  
  16.         initData();  
  17.         //获取管理者  
  18.         manager = getSupportFragmentManager();  
  19.         manager.beginTransaction().add(R.id.fl,fragmentlist.get(0)).commit();  
  20. }  
  21.    //把布局id穿过去  
  22.     @Override  
  23.     protected int getLayoutId() {  
  24.         return R.layout.activity_main;  
  25.     }  
  26.     /** 
  27.      * 初始化数据 
  28.      */  
  29.     @Override  
  30.     protected void initData() {  
  31.         f1 f1=new f1();  
  32.         f2 f2=new f2();  
  33.         f3 f3=new f3();  
  34.         f4 f4=new f4();  
  35.         f5 f5=new f5();  
  36.         fragmentlist.add(f1);  
  37.         fragmentlist.add(f2);  
  38.         fragmentlist.add(f3);  
  39.         fragmentlist.add(f4);  
  40.         fragmentlist.add(f5);  
  41.     }  
  42.   
  43.   
  44.     @Override  
  45.     protected void onCheckedChanged() {  
  46.         //给RadioGroup添加监听事件  
  47.        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {  
  48.             @Override  
  49.             public void onCheckedChanged(RadioGroup radioGroup, int i) {  
  50.                switch (i){  
  51.                     case R.id.rb1:  
  52.                         manager.beginTransaction().replace(R.id.fl, fragmentlist.get(0)).commit();  
  53.                         break;  
  54.                     case R.id.rb2:  
  55.                         manager.beginTransaction().replace(R.id.fl, fragmentlist.get(1)).commit();  
  56.                         break;  
  57.                     case R.id.rb3:  
  58.                         manager.beginTransaction().replace(R.id.fl, fragmentlist.get(2)).commit();  
  59.                         break;  
  60.                     case R.id.rb4:  
  61.                        manager.beginTransaction().replace(R.id.fl, fragmentlist.get(3)).commit();  
  62.                         break;  
  63.                     case R.id.rb5:  
  64.                         manager.beginTransaction().replace(R.id.fl, fragmentlist.get(4)).commit();  
  65.                         break;  
  66.                 }  
  67.             }  
  68.         });  
  69.     }  
  70. }</span>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值