Inject.io

Additional

Language
Java
Version
N/A
Created
Jan 6, 2016
Updated
Jan 11, 2016 (Retired)
Owner
Inject.io (injectio)
Contributor
Sergey Ivonchik (selfsx)
1
Activity
Badge
Generate
Download
Source code

Advertisement

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 dependencies (even Android ones).
  • Runtime (or cry slooooow if your want...whatever).
  • Injects views and resources, that's it.

How?

repositories {
  repositories {
    maven {
      jcenter()
    }
  }
}

dependencies {
  compile 'inject:inject:1.0.4'
}
public class BaseActivity extends Activity {
  @InjectView(R.id.title)
  private TextView mTitle;

  @InjectResource(R.string.fruits)
  private String[] mFruits;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.base_activity);
    Injector.inject(this);
  }
}

public class BaseFragment extends Fragment {
  @InjectView(R.id.title)
  private TextView mTitle;

  @InjectResource(R.string.hello)
  private String mHello;

  @InjectResource(R.array.bases)
  private int[] mBases;

  @Override
  public void onViewCreated(View view, Bundle savedInstanceState) {
      super.onViewCreated(view, savedInstanceState);
      Injector.inject(this, view);
  }
}

public class BaseViewGroup extends ViewGroup {
  @InjectView(R.id.subview)
  private View mSubview;

  @InjectResource(R.dimen.font_size)
  private float mFontSize;

  public BaseViewGroup(Context ctx, AttributeSet attrs, int style) {
    super(ctx, attrs, style);

    String service = Context.LAYOUT_INFLATER_SERVICE;
    LayoutInflater inflater = (LayoutInflater) ctx.getSystemService(service);
    inflater.inflate(R.layout.base_view_group, this, true);
    Injector.inject(this);
  }
}

License

Copyright 2015 Sergey Ivonchik

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0