FragmentArg - WonderCsabo/androidannotations GitHub Wiki

Since AndroidAnnotations 2.7

@FragmentArg

The @FragmentArg annotation indicates that a fragment field should be injected with the corresponding Fragment Argument.

The setter method in the generated builder will always have the same name as the argument. By default, the key used to bind the value is the field name, but you can change it by providing a value to the @FragmentArg annotation.

Usage example:

@EFragment
public class MyFragment extends Fragment {

  @FragmentArg("myStringArgument")
  String myMessage;

  @FragmentArg
  String anotherStringArgument;
	
  @FragmentArg("myDateExtra")
  Date myDateArgumentWithDefaultValue = new Date();

}

Method based injection

Since AndroidAnnotations 4.0.0

@EFragment
public class MyFragment extends Fragment {

  @FragmentArg("myStringArgument")
  void setOneFragmentArg(String myMessage){
    // do something with myMessage
  }
  
   void setMultipleFragmentArgs(@FragmentArg String anotherStringArgument, @FragmentArg("myDateExtra") Date myDateArgument){
    // do something with anotherStringArgument and myDateArgument
  }

}

The fragment builder will hold dedicated methods for these arguments:

MyFragment myFragment = MyFragment_.builder()
  .myMessage("Hello")
  .anotherStringArgument("World")
  .build();