Fragment, Activity传值的注解组件
来源:互联网 发布:李鹤年 书法 知乎 编辑:程序博客网 时间:2024/06/18 17:33
都是编译时注解,而没有采用反射,不用担心性能问题
IntentBuilder
@IntentBuilderclass DetailActivity extends Activity { @Extra String id; @Extra @Nullable String title; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); DetailActivityIntentBuilder.inject(getIntent(), this); // TODO use id and title }startActivity(new DetailActivityIntentBuilder("12345") .title("MyTitle") .build(context))}
@IntentBuilderclass DownloadService extends IntentService { @Extra String downloadUrl; @Override protected void onHandleIntent(Intent intent) { MyServiceIntentBuilder.inject(intent, this); }}startService(new DownloadServiceIntentBuilder("http://google.com").build(context))
OnActivityResult
@Overrideprotected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { super.onActivityResult(requestCode, resultCode, data); ActivityResult.onResult(requestCode, resultCode, data).into(this);}
@OnActivityResult(requestCode = 33)void onActivityResultTestActivity() { /* Do something */ }@OnActivityResult(requestCode = 1, resultCodes = { Activity.RESULT_OK })void onActivityResultActivityOk() { /* Only do something when ok */ }@OnActivityResult(requestCode = 1, resultCodes = { Activity.RESULT_CANCELED })void onActivityResultActivityCanceled() { /* Only do something when canceled */ }@OnActivityResult(requestCode = 2)void onActivityResultPickImage(final int resultCode, final Intent intent) { /* Do something */ }
支持各种参数
none
int
Intent
int, Intent
Intent, int
每个注解的方法只能有一个int和/或意图变量
FragmentArgs
@FragmentWithArgspublic class MyOptionalFragment extends Fragment { @Arg int id; @Arg String title; @Arg(required = false) String additionalText; @Arg(required = false) float factor; @Arg(required = false) int mFeatureId; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); FragmentArgs.inject(this); // read @Arg fields }}
public class MyActivity extends Activity { public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); int id = 123; String title = "test"; // Using the generated Builder Fragment fragment = new MyFragmentBuilder(id, title) // required args .additionalText("foo") // Optional arg .factor(1.2f) // Optional arg .featureId(42) // Optional arg .build(); // Fragment Transaction getFragmentManager() .beginTransaction() .replace(R.id.container, fragment) .commit(); }}
文/youmu178(简书作者)
原文链接:http://www.jianshu.com/p/d57c8ce3d1e5
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
原文链接:http://www.jianshu.com/p/d57c8ce3d1e5
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
0 0
- Fragment, Activity传值的注解组件
- Android的Activity获取fragment和fragment的组件
- 四大组件--Activity(Fragment)
- Activity和Fragment之间的传值
- Activity与Fragment之间的传值
- Activity与Fragment的相互传值
- Activity与Fragment之间的传值
- Activity与Fragment之间的传值
- activity向另一个activity的fragment传值的问题
- AndJump --- Android进阶,注解在Activity与Fragment之间传值
- Activity或Fragment传值给Fragment
- 四大组件之Activity的瘦身版Fragment(片段)
- Activity与Activity之间,Fragment与Fragment之间通过Bundle传值的研究
- Activity与Activity之间,Fragment与Fragment之间通过Bundle传值的研究
- Fragment与Activity之间传值,Fragment与Fragment传值以及对commit的理解
- Activity传值给Fragment
- activity fragment 传值交互
- fragment传值给Activity
- 多种方式登陆模块设计
- Android对接后台数据第一步之接口是否可用
- 在ubuntu 16.04上安装基本的拼音输入法
- 操作系统的三个抽象概念
- display:inline与float:left的区别
- Fragment, Activity传值的注解组件
- Material Design 最全解析_4 视图和效果
- iOS解决两个静态库的冲突 duplicate symbol
- bean的加载(六)准备创建bean
- mysql sql语句大全
- Working copy text base is corrupt
- 学习“源”地
- html5绘制图像
- 程序的开机关机重启,开机启动,休眠功能delphi实现