Skip to content

参数注入

Half Stack edited this page Jul 7, 2017 · 1 revision

通过@InjectParam注解可以为Activity或者Fragment的成员变量添加参数注入
例如:

@Route({"test", "http://example.com/test", "router://test"})
public class TestActivity extends AppCompatActivity {
    @InjectParam
    int id = 123;
    @InjectParam(key = "status")
    private String sts = "default"; // 不建议使用private修饰符

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
        Router.injectParams(this); // 实现参数注入
    }
}
  • @InjectParam会在Bundle中取出对应key的值传给成员变量,默认key为变量名,也可以通过key=""属性指定
  • 参数注入支持变量的默认值,目前支持默认值的变量类型有基本数据类型StringCharSequence
  • 变量不建议使用private修饰符,因为私有的变量会采用反射的方式注入参数
  • 需要使用Router.injectParams(this);来实现最终的参数注入