Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android RoboGuice使用指南(17) Inject Extra

Android RoboGuice使用指南(17) Inject Extra

編輯:Android開發教程

使用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);     
          
 }     
          
}

本例下載: http://www.imobilebbs.com/download/android/roboguice/InjectExtraDemo.zi p

查看全套文章:http://www.bianceng.cn/OS/extra/201301/34950.htm

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved