`
lyunabc
  • 浏览: 529763 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

Android RoboGuice 使用指南(17):Inject Extra

 
阅读更多

使用Intent 启动一个Activity,Service等时,可以通过putExtra 传送数据,被触发的Activity,Service可以使用getIntent()的getExtras 取的Extra的Bundle ,然后再根据Extra的键值(Key)取的对应的参数值。

RoboGuice提供了一个简洁的方法来取得 这些Extra 值,通过@InjectExtra 标记。

本例使用两个Activity,InjectExtraDemo 用来触发InjectExtraReceiver,在InjectExtraDemo中创建Intent时,通过putExtra 放置两个参数Extra1,Extra2.

public class InjectExtraDemo extends RoboActivity {
 
 @InjectView (R.id.button) Button button;
 @Inject Context context;
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.injectextra);
 button.setOnClickListener(mGoListener);
 }
 
 private OnClickListener mGoListener = new OnClickListener()
 {
 public void onClick(View v)
 {
 Intent di = new Intent();
 di.setClass(context, InjectExtraReceiver.class) ;
 di.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
 | Intent.FLAG_ACTIVITY_SINGLE_TOP);
 di.putExtra("Extra1","Message1");
 di.putExtra("Extra2","Message2");
 context.startActivity(di);
 }
 };
 
}


在InjectExtraReceiver 通过@InjectExtra 标记 ,Roboguice自动为这些变量注入由Intent传入的值,Optional=true表示该Extra为可选,如果传入的Intent不含这个Extra时,值为null.

public class InjectExtraReceiver extends RoboActivity{
 
 @InjectView (R.id.textview) TextView textView;
 @InjectExtra ("Extra1" ) String extra1;
 @InjectExtra ("Extra2" ) String extra2;
 @InjectExtra (value="Extra3" , optional=true) String extra3;
 
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 
 setContentView(R.layout.injectextrareceiver);
 
 textView.setText("Extra1:"+extra1
 +"\r\nExtra2:"+extra2
 +"\r\nExtra3:"+extra3);
 
 }
 
}


本例下载

分享到:
评论

相关推荐

    安卓Android源码——Inject增加sqlite3数据库映射注解(ORM).zip

    安卓Android源码——Inject增加sqlite3数据库映射注解(ORM).zip

    InjectDLL_injectDll_

    Usage: injectdll.exe [process name] [dll path] [option number]option 1 - CreateRemoteThreadoption 2 - NtCreateThreadExoption 3 - RtlCreateUserThread

    Android代码-injectio

    Inject.io []() Tiny and nice injections syntax sugar for Android. If you're using heavy injection frameworks just to inject views and resources try this. Wat? Just few lines of code, completely no...

    inject:围绕javax.inject批注的简单Kotlin多平台抽象

    例如,在Kotlin公共代码中的构造函数上使用Inject注释: class MyUseCase @Inject constructor() { .. . } 可用的注释和界面 @Inject @Named("name") @Qualifier @Scope @Singleton Provider 建立图书馆 该库...

    sisu-inject-bean-1.4.2.jar

    sisu-inject-bean-1.4.2.jar

    InjectCSSToWebView:Inject CSS To WebView ; 将CSS注入WebView

    InjectCSSToWebView##Inject CSS To WebView ;##将CSS注入WebView .NO.1,Before load WebView,Inject CSS. 在加载WebView之前注入CSS。NO.2,After load WebView,Inject CSS. 在加载WebView之后注入CSS。

    vue 解决provide和inject响应的问题

    官网上说provide 和 inject 绑定并不是可响应的。这是刻意为之的。然而,如果你传入了一个可监听的对象,那么其对象的属性还是可响应的。 provide: Object | () => Object(一个对象或返回一个对象的函数) inject...

    rage_vnc.rar_KAZAA_Morpheus _inject_p2p vnc_rage_vnc

    Functions: Topic parsing, supporting multi-commands Anti-Botkiller Anti-Sandbox VNC-Scanner ...inject disconnect reconnect reconnect.next nick restart vncstop patch part join scan msn

    meteor-inject-data:一种使用初始HTML向客户端注入数据的方法

    安装meteor add communitypackages:inject-data推送数据我们需要将此包与服务器端路由器一起使用。 我们扩展了nodejs http.OutgoingMessage并提供了这样的API。 这是的示例。 Picker . route ( '/' , function ( ...

    VC代码 RT_INJECT (实用代码源)

    VC代码 RT_INJECT (实用代码源)VC代码 RT_INJECT (实用代码源)VC代码 RT_INJECT (实用代码源)VC代码 RT_INJECT (实用代码源)VC代码 RT_INJECT (实用代码源)VC代码 RT_INJECT (实用代码源)VC代码 RT_INJECT (实用代码...

    巫术:注入JS和CSS。「Witchcraft: Inject JS and CSS」-crx插件

    从您的家庭文件夹注入Javascript和...*可在Windows,Mac和Linux上使用; *同时处理JS和CSS; * @include指令可从域脚本内部加载其他JS文件。 安装扩展程序后,请访问该网站以了解将脚本存储在何处。 支持语言:English

    Android使用注解查找控件

    Android 开发使用的inject注解查找控件实例

    mimikatzWIN服务器神器

    使用方法: 1. 运行主程序:mimikatz.exe 2. 输入:privilege::debug 提升权限 3. 输入:inject::process lsass.exe sekurlsa.dll 将sekurlsa.dll 注入到lsass.exe 中 4. 输入:@getLogonPasswords 即可获取hash...

    Inject:黑帽子2017

    原理使用的是:windows NTFS机制。在实际应用中,我们想制定父进程,进行伪装。将NtCreateProcessEx函数的第四个参数,指向我们制定的进程的句柄。原文档引用:Inject-dll-by-Process-DoppelgangingProcess Doppelg...

    vue中的provide/inject的学习使用

    provider/inject:简单的来说就是在父组件中通过provider来提供变量,然后在子组件中通过inject来注入变量。 需要注意的是这里不论子组件有多深,只要调用了inject那么就可以注入provider中的数据。而不是局限于只能...

    Android注解框架AndroidInject.zip

    AndroidInject 是 Android 注解框架,以简化 Android 开发 目前完成的注解(持续增加中): @AINoTitle: 类注解, 只适用于Activity(需继承于AIActivity), 设置Activity不显示Title  @AIFullScreen: 类注解...

    methodinject,面向android卓aop框26550;的MethodInject.zip

    methodinject,面向android卓aop框26550;的MethodInject.zip

    javax.inject.jar

    javax.inject.jar java 开发技术要用到,打包分享给大家,需要的下载学习哈!

    javax.inject.Provider

    Spring 依赖的 javax.inject.Provider

    inject.dmg.signature

    最近更新了IOS12.2,导致一些location 无法使用,这个是最新的12.3驱动,把名字修改直接解压至相应文件夹即可使用

Global site tag (gtag.js) - Google Analytics