@Retention(value=CLASS)
@Target(value=TYPE)
public @interface EFragment
Should be used on android.app.Fragment or link android.support.v4.app.Fragment classes to enable usage of AndroidAnnotations.
Your code related to injected beans should go in an AfterInject
annotated method.
Any view related code should happen in an AfterViews
annotated
method.
If the class is abstract, the enhanced activity will not be generated. Otherwise, it will be generated as a final class. You can use AndroidAnnotations to create Abstract classes that handle common code.
The annotation value should be one of R.layout.* fields. If not set, no
content view will be set, and you should call the
inflater.inflate()
method yourself, in
onCreateView()
.
The generated class will also contain a FragmentBuilder to build fragment
with a fluent API. Arguments can be passed by using FragmentArg
annotation on every native or serializable/parcelable field.
The enhanced fragment can also be retrieved (not injected in layout) in any
enhanced class by using FragmentById
or FragmentByTag
annotations.
Example :@EFragment(R.layout.fragment) public class MyFragment extends Fragment { @Bean MyBean myBean; @ViewById TextView myTextView; @FragmentArg String myExtra; @AfterInject void init() { myBean.doSomeStuff(); } @AfterViews void initViews() { myTextView.setText(myExtra); } } @EActivity(R.layout.main) public class MyActivity extends Activity { @FragmentById MyFragment myFragment; }
AfterInject
,
AfterViews
,
FragmentById
,
FragmentByTag
,
FragmentArg
Copyright © 2010-2014. All Rights Reserved.