Extra
来源:互联网 发布:维生素vb的作用及功能 编辑:程序博客网 时间:2024/05/19 13:27
原文地址:
https://github.com/excilys/androidannotations/wiki/Extras#executing-code-after-extras-injection
@Extra
@Extra注释一个从Activity中启动意图中获取正确值的字段,例如:
@EActivitypublic class MyActivity extends Activity { @Extra("myStringExtra") String myMessage; @Extra("myDateExtra") Date myDateExtraWithDefaultValue = new Date();}
如果你不给@Extra注释的字段值赋值,那么这个字段值将直接使用被使用这个字段名称。比如:
@EActivitypublic class MyActivity extends Activity { // The name of the extra will be "myMessage" @Extra String myMessage;}
请注意,您可以使用意图构建器传递Extra的值。
MyActivity_.intent().myMessage("hello").start() ;
处理onNewIntent()
AndroidAnnotations会覆写setIntent()方法,并当你调用setIntent()方法时会根据给定的意图自动设置extra的值。
这允许你从onNewIntent()方法中通过调用setIntent()方法自动注入extra的值。
@EActivitypublic class MyActivity extends Activity { @Extra("myStringExtra") String myMessage; @Override protected void onNewIntent(Intent intent) { setIntent(intent); }}
在注入extras之后执行代码
如果你需要执行注入extras之后的代码,你应该使用@AfterExtras注释一些方法。
@EActivitypublic class MyClass { @Extra String someExtra; @Extra int anotherExtra; @AfterExtras public void doSomethingAfterExtrasInjection() { // someExtra and anotherExtra are set to the value contained in the incoming intent // if an intent does not contain one of the extra values the field remains unchanged }}
警告
如果父类和子类有@AfterViews,@AfterInject或@AfterExtras名称相同的带注释的方法,生成的代码将会有BUG。查看更多细节问题# 591。
同时,当我们调用那些@AfterViews、@AfterInject、@AfterExtras注解的方法时会有一个调用顺序,但是如果@AfterView、@AfterInject、@AfterExtras 注解的方法是同名的,那就不能确保这几个方法的调用顺序了 ,请看( issue #810)。
关于这些注解的方法调用顺序,你可以看我的这篇博客译文:@AfterXXX 调用顺序。
0 0
- Extra
- Extra Krunch
- day3 extra
- extra-code
- Extra属性
- Extra Krunch
- Extra Workloads
- Extra Repositories for Ubuntu
- Extra环境配置说明
- Using Extra Libraries
- BB Extra 1.00 Release
- 1951 Extra Krunch
- poj 1951 extra krunch
- C - Extra Krunch
- poj 1951 Extra Krunch
- day 2 extra
- BNUOJ 14280 Extra Krunch
- c++ extra qualification
- 《C++编程》第二章第14题
- 黑马程序员--学习java语法的前奏
- 4月5日6日毕设日记
- POJ 2385 - Apple Catching [DP]
- DecorView dispatchTouchEvent (ACTION_DOWN:找处理者) dispatchTouchEvent:true(事件处理者)
- Extra
- vfork,fork,clone,pthread_create 区别
- 透视JVM之垃圾回收
- Oracle 索引 详解
- my vim .vimrc
- Hbase(3):HBase常用shell
- 几种常见数据库简介
- HDU 1016--Prime Ring Problem【DFS】
- 运算符重载详解