转载

使用注解操作Fragment Argument

最近做了一个操作Fragment的Argument的简便方式,使用注解在编译时生成操作Argument的代码,在Fragment注入获取代码,完成对Argument的操作。

这样的轮子已经有了 这个 ,再造的同时,顺便学习一下编译时注解,另外可以自定义自己的需求。

项目地址在这里 https://github.com/qinglinyi/FragmentArg

使用

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
}
}
apply plugin: 'com.neenbedankt.android-apt'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.qinglinyi.arg:arg-api:0.9.0'
apt 'com.qinglinyi.arg:arg-compiler:0.9.0'
}

apt {
arguments {
// FragmentBuilder的包
argPackageName "com.qinglinyi.arg.sample"
}
}

Fragment

@UseArg
public class MyFragment extends Fragment {

@Arg
String name;

@Arg
int age;

@Arg
ArrayList<String> interests;

@Arg
String[] friendNames;

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArgInjector.inject(this);
}
...

Activity两种方式

mFragment0 = FragmentBuilder.builder(new MyFragment())
.age(15)
.name("张三")
.friendNames(new String[]{"李四", "王五"})
.interests(list)
.build();
mFragment1 = new MyFragmentBuilder().age(15)
.name("李四")
.friendNames(new String[]{"张三", "王五"})
.interests(list)
.build();
原文  http://www.qinglinyi.com/posts/fragment-arg/
正文到此结束
Loading...