[Android] IntentInjector

IntentInjector

作app的時候,常常遇到這樣的需求:將數據放置在Intent中,再經過startActivity方法傳給下一個Activity。經常使用寫法以下所示:git

Intent intent = new Intent(this, StickyTabActivity.class);
intent.putExtra("string", "sdsd");
intent.putExtra("int", 101);
intent.putExtra("boolean", true);
intent.putExtra("object", DummyContent.ITEMS.get(0));
startActivity(intent);

在StickyTabActivity中,經過以下代碼取出數據:github

mBoolean = getIntent().getBooleanExtra("boolean", true);

若是使用IntentInjector,在StickyTabActivity中,能夠這樣寫:app

@InjectIntent("object")
public DummyContent.DummyItem mData;

@InjectIntent("int")
private Integer mI;

@InjectIntent("boolean")
private boolean bool;

再調用:maven

IntentInjector.inject(this);

此後,@InjectIntent標註的成員變量便可得到傳遞的數據。成員變量可爲private。@InjectIntent支持標註方法,以下所示:this

@InjectIntent("string")
public void testInject(String data) {
    Log.d(TAG, "testInject: " + data);
}

要求方法爲public,僅有一個參數。code

IntentInjector的源碼以下所示:get

https://github.com/legendmohe/IntentInjector/tree/master源碼

使用方法

Gradle

compile 'com.legendmohe.maven:intentinjector:0.1'

maven

<dependency>
  <groupId>com.legendmohe.maven</groupId>
  <artifactId>intentinjector</artifactId>
  <version>0.1</version>
  <type>pom</type>
</dependency>
相關文章
相關標籤/搜索