@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()
.
We only set the layout if the onCreateView()
method returns null
from the annotated class. If you want to set the layout regardless of that
return value, use the forceLayoutInjection()
annotation parameter.
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
Modifier and Type | Optional Element and Description |
---|---|
boolean |
forceLayoutInjection
We only set the layout if the
onCreateView() method returns
null from the annotated class. |
String |
resName
The resource name as a string which refer to the layout.
|
int |
value
The R.layout.* field which refer to the layout.
|
public abstract int value
public abstract String resName
public abstract boolean forceLayoutInjection
onCreateView()
method returns
null from the annotated class. If you want to set the layout regardless
of that return value, pass true to this annotation parameter.Copyright © 2010-2015. All Rights Reserved.