IntentLife框架帮助您轻松愉快地接收Intent和Bundle数据

一般情况下,我们在一个Activity中接收上一个Activity传递的Intent携带的数据会写一堆getXXXExtra方法,需要传入key值,还要写强转代码,Fragment接收Bundle数据亦然,想想都觉得恶心…

于是本文推出IntentLife来帮助大家减少繁重的开发工作

IntentLife框架地址:https://github.com/ausboyue/IntentLife

一个自动绑定Intent或Bundle携带的数据的android库。(An android library that automatically binds data carried by the Intent or Bundle.)

如何使用

简述使用流程:

添加IntentLife依赖
绑定当前Activity
属性添加BindIntentKey注解

一、引用框架

1. 在项目根目录下的build.gradle添加仓库地址:
    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }
2. 在需要使用框架的Module下的build.gradle添加依赖:
    dependencies {
          implementation 'com.github.ausboyue.IntentLife:intentlife:v1.0.3'
          annotationProcessor 'com.github.ausboyue.IntentLife:intentlife_compiler:v1.0.3'
    }

二、开始使用

1. ActivityA跳转ActivityB
  • ActivityA跳转代码可能如下:
        User user = new User();
        user.setUserId("9527");
        user.setName("Cheny");
        user.setJob("android developer");

        Intent intent = new Intent(activityA, ActivityB.class);
        intent.putExtra("key_user", user);
        startActivity(intent);
  • ActivityB中在需要绑定数据的属性上加IntentLife注解(@BindIntentKey),如:
    @BindIntentKey("key_user")
    User mUser;
  • 在ActivityB的onCreate方法中适当位置绑定当前Activity,完整代码如下:
    public class ActivityB extends AppCompatActivity {
        @BindIntentKey("key_user")
        User mUser;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_secend);
            //  IntentLife inject
            IntentLife.bind(this);
            
            TextView tv_user_name = findViewById(R.id.tv_user_name);
            tv_user_name.setText(
                    "Hello , I am " + mUser.getName()
                            + ".\nMy job is " + mUser.getJob() + ".");
        }
    }

这样就可以直接对mUser进行操作了。

建议将绑定代码IntentLife.bind(this)写在基础的Activity中(如BaseActivity),一劳永逸。

框架支持

数据类型
  • 支持java八大基本数据类型及其数组和集合
  • 支持实现java序列化Serializable接口的类
  • 支持实现android序列化Parcelable接口的类及其数组和集合
  • 支持android Bundle所支持的所有数据类型
界面场景
  • 支持Activity间的跳转
  • 支持加载Fragment
  • 支持在任何需要使用数据的类中使用,如MVP设计中的Presenter类

使用注意

需要的绑定的属性不应有private修饰,否则无法正常绑定数据。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值