Activity跳转传值利器。processorTool框架新鲜出炉。

转载请注明出处:http://blog.csdn.net/liu470368500/article/details/51142099

相信大家很多时候。在Activity进行页面传值时。很苦恼,需要定义各种各样的KEY定义传递数据。在传递时如果参数较多。还得需要到目标Activity中去寻找传递的数据应该是怎么传递才是符合逻辑的。现在好了。有了此框架的加入。相信定能使你的Activity代码更加简洁易懂。再遇到界面跳转传递参数过多的情况。那都不叫事!

processorTool框架使用编译时注解处理。绿色无反射。完全不用担心你的运行效率问题

如何引进processorTool:

  • 在工程的根目录的build.gradle中加入:
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
  • 在要使用的工程module中添加应用apt插件
apply plugin: 'com.neenbedankt.android-apt'
  • 加入引用:
dependencies {
    ...
    compile 'org.lzh.compiler.lib:processortool-api:0.1'
    apt 'org.lzh.compiler.lib:processortool-compiler:0.1'
}

下面来看具体使用姿势

首先。给你的Activity添加@Params注解:

@Params
public class EmptyActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
    }
}

这是Activity跳转无参数传递时的用法,只需要对Activity添加一个@Params注解即可。然后在跳转时。调用一行代码即可:

EmptyActivity_Dispatcher.create().start(MainActivity.this);

EmptyActivity_Dispatcher类即时EmptyActivity添加了注解@Params之后生成的java类,非常方便直观。

如果是跳转时需要传递参数的情况。还有个@Field注解。此注解结合@Params一起使用,如:

@Params(fields = {
        @Field(name = "username",type = String.class,),
        @Field(name = "password",type = String.class)
})
public class ParamsActivity extends AppCompatActivity {
    ...
}

传递几个参数。就在Params注解中添加几个Field注解即可。

然后是跳转时的代码:

ParamsActivity_Dispatcher.create()
                .setUsername("123456")
                .setPassword("111111")
                .requestCode(-1)
                .start(this);

同样的。生成了以后缀名为_Dispatcher的类。链式调用设置属性值。

start方法也支持使用四种类型的参数进行跳转,Activity,Context,Fragment,V4Fragment:

跳转之后肯定是需要取值啊。框架也对取值进行了封装处理:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_params);
        ButterKnife.bind(this);
        // 获取传参
        ParamsActivity_Dispatcher.RequestData data = ParamsActivity_Dispatcher.getData(getIntent());
        username.setText(data.getUsername());
        password.setText(data.getPassword());

    }

调用生成类ParamsActivity_Dispatcher的getData方法。即可拿到装有全部参数的类RequestData的实例。拿到数据后任性的给界面绑定数据吧!

下面介绍一下Field注解含有的以下五个参数:

  • name : (必填)要传递的参数名。如上的username、password
  • type : (必填)传递参数的类型,支持基本数据类型及实现了Serializable接口的类
  • doc : (非必填)当前传递参数的注释。页面跳转时设置传递参数值时可得到提示
  • defValue: (非必填)当前传递参数的默认值。
  • FieldType:(非必填)有四种类型,Serializable、list、array、set;默认使用Serializable。与type参数结合使用。
FieldType与type结合:以typeString.class为例:
Serializable    :   传参类型为原有的String
List            :   传参类型为List<String>
array           :   传参类型为String[]
set             :   传参类型为Set<String>

github地址

你可能感兴趣的:(框架,界面,activity传值)