@BooleanRes
@ColorStateListRes
@DrawableRes
@IntArrayRes
@IntegerRes
@LayoutRes
@MovieRes
@TextRes
@TextArrayRes
@StringArrayRes
@Extra
@EActivitypublic class MyActivity extends Activity { @Extra(myStringExtra) String myMessage; @Extra(myDateExtra) Date myDateExtraWithDefaultValue = new Date();}
Or:@ EActivitypublic class MyActivity extends Activity {// The name of the extra will be myMessage, The name must be consistent @ Extra String myMessage ;}
Pass value:MyActivity_.intent().myMessage(hello).start() ;
@ SystemService@EActivitypublic class MyActivity extends Activity {// @SystemService NotificationManager notificationManager;}
@ HtmlRes@EActivitypublic class MyActivity extends Activity { // Injects R.string.hello_html @HtmlRes(R.string.hello_html) Spanned myHelloString; // Also injects R.string.hello_html @HtmlRes CharSequence helloHtml;}
@ FromHtml@ EActivitypublic class MyActivity extends Activity {// It must be used in TextView @ ViewById (R. id. my_text_view) @ FromHtml (R. string. hello_html) TextView textView; // Injects R. string. hello_html into the R. id. hello_html view @ ViewById @ FromHtml TextView helloHtml ;}
@ NonConfigurationInstancePublic class MyActivity extends Activity {// equivalent to Activity. onRetainNonConfigurationInstance () @ NonConfigurationInstance Bitmap someBitmap; @ NonConfigurationInstance @ Bean MyBackgroundTask myBackgroundTask ;}
@ HttpsClient@HttpsClient HttpClient httpsClient;
Example:@EActivitypublic class MyActivity extends Activity { @HttpsClient(trustStore=R.raw.cacerts, trustStorePwd=changeit, hostnameVerif=true) HttpClient httpsClient; @AfterInject @Background public void securedRequest() { try { HttpGet httpget = new HttpGet(https://www.verisign.com/); HttpResponse response = httpsClient.execute(httpget); doSomethingWithResponse(response); } catch (Exception e) { e.printStackTrace(); } } @UiThread public void doSomethingWithResponse(HttpResponse resp) { Toast.makeText(this, HTTP status + resp.getStatusLine().getStatusCode(), Toast.LENGTH_LONG).show(); }}
@ FragmentArg@ EFragmentpublic class MyFragment extends Fragment {// equivalent to Fragment Argument @ FragmentArg (response) String myMessage; @ FragmentArg String response; @ FragmentArg (myDateExtra) Date response = new Date ();}
MyFragment myFragment = MyFragment_.builder() .myMessage(Hello) .anotherStringArgument(World) .build();
@ Click@ Click (R. id. myButton) void myButtonWasClicked () {[...]} @ Clickvoid anotherButton () {// if not specified, the function name and id correspond to [...]} @ Clickvoid yetAnotherButton (View clickedView) {[...]}
Other click events:
Clicks with @ Click
Long clicks with @ LongClick
Touches with @ Touch
AdapterViewEvents
Item clicks with @ ItemClick
Long item clicks with @ ItemLongClick
Item selection with @ ItemSelect can be called in two ways: 1.
@ EActivity (R. layout. my_list) public class MyListActivity extends Activity {//... @ ItemClick public void myListItemClicked (MyItem clickedItem) {// MyItem is the entity class of the adapter, which is equivalent to the adapter. getItem (position)} @ ItemLongClick public void myListItemLongClicked (MyItem clickedItem) {}@ ItemSelect public void myListItemSelected (boolean selected, MyItem selectedItem ){}}
2.@ EActivity (R. layout. my_list) public class MyListActivity extends Activity {//... @ ItemClick public void myListItemClicked (int position) {// location id} @ ItemLongClick public void myListItemLongClicked (int position) {}@ ItemSelect public void myListItemSelected (boolean selected, int position) {}}
@ SeekBarProgressChange// Equivalent to SeekBar. OnSeekBarChangeListener. onProgressChanged (SeekBar, int, boolean)
@SeekBarProgressChange(R.id.seekBar) void onProgressChangeOnSeekBar(SeekBar seekBar, int progress, boolean fromUser) { // Something Here } @SeekBarProgressChange(R.id.seekBar) void onProgressChangeOnSeekBar(SeekBar seekBar, int progress) { // Something Here } @SeekBarProgressChange({R.id.seekBar1, R.id.seekBar2}) void onProgressChangeOnSeekBar(SeekBar seekBar) { // Something Here } @SeekBarProgressChange({R.id.seekBar1, R.id.seekBar2}) void onProgressChangeOnSeekBar() { // Something Here }@SeekBarTouchStart and @SeekBarTouchStop
@ SeekBarTouchStart and @ SeekBarTouchStop accept listener for start and end events
@ TextChange@TextChange(R.id.helloTextView) void onTextChangesOnHelloTextView(CharSequence text, TextView hello, int before, int start, int count) { // Something Here } @TextChange void helloTextViewTextChanged(TextView hello) { // Something Here } @TextChange({R.id.editText, R.id.helloTextView}) void onTextChangesOnSomeTextViews(TextView tv, CharSequence text) { // Something Here } @TextChange(R.id.helloTextView) void onTextChangesOnHelloTextView() { // Something Here }
@ BeforeTextChange@BeforeTextChange(R.id.helloTextView) void beforeTextChangedOnHelloTextView(TextView hello, CharSequence text, int start, int count, int after) { // Something Here } @BeforeTextChange void helloTextViewBeforeTextChanged(TextView hello) { // Something Here } @BeforeTextChange({R.id.editText, R.id.helloTextView}) void beforeTextChangedOnSomeTextViews(TextView tv, CharSequence text) { // Something Here } @BeforeTextChange(R.id.helloTextView) void beforeTextChangedOnHelloTextView() { // Something Here }
@ AfterTextChange@AfterTextChange(R.id.helloTextView) void afterTextChangedOnHelloTextView(Editable text, TextView hello) { // Something Here } @AfterTextChange void helloTextViewAfterTextChanged(TextView hello) { // Something Here } @AfterTextChange({R.id.editText, R.id.helloTextView}) void afterTextChangedOnSomeTextViews(TextView tv, Editable text) { // Something Here } @AfterTextChange(R.id.helloTextView) void afterTextChangedOnHelloTextView() { // Something Here }
@ OptionsMenu and OptionsItem@EActivity@OptionsMenu(R.menu.my_menu)public class MyActivity extends Activity { @OptionMenuItem MenuItem menuSearch; @OptionsItem(R.id.menuShare) void myMethod() { // You can specify the ID in the annotation, or use the naming convention } @OptionsItem void homeSelected() { // home was selected in the action bar // The Selected keyword is optional } @OptionsItem boolean menuSearch() { menuSearch.setVisible(false); // menuSearch was selected // the return type may be void or boolean (false to allow normal menu processing to proceed, true to consume it here) return true; } @OptionsItem({ R.id.menu_search, R.id.menu_delete }) void multipleMenuItems() { // You can specify multiple menu item IDs in @OptionsItem } @OptionsItem void menu_add(MenuItem item) { // You can add a MenuItem parameter to access it }}
Or:@EActivity@OptionsMenu({R.menu.my_menu1, R.menu.my_menu2})public class MyActivity extends Activity {}
@ Background:void myMethod() { someBackgroundWork(hello, 42);}@Backgroundvoid someBackgroundWork(String aParam, long anotherParam) { [...]}
Cancel:void myMethod() { someCancellableBackground(hello, 42); [...] boolean mayInterruptIfRunning = true; BackgroundExecutor.cancelAll(cancellable_task, mayInterruptIfRunning);}@Background(id=cancellable_task)void someCancellableBackground(String aParam, long anotherParam) { [...]}
Non-concurrent execution:void myMethod() { for (int i = 0; i < 10; i++) someSequentialBackgroundMethod(i);}@Background(serial = test)void someSequentialBackgroundMethod(int i) { SystemClock.sleep(new Random().nextInt(2000)+1000); Log.d(AA, value : + i);}
Latency:@Background(delay=2000)void doInBackgroundAfterTwoSeconds() {}
@ UiThreadUI thread:void myMethod() { doInUiThread(hello, 42);}@UiThreadvoid doInUiThread(String aParam, long anotherParam) { [...]}
Latency:@UiThread(delay=2000)void doInUiThreadAfterTwoSeconds() {}
UI thread optimization:@UiThread(propagation = Propagation.REUSE)void runInSameThreadIfOnUiThread() {}
Progress value change:@EActivitypublic class MyActivity extends Activity { @Background void doSomeStuffInBackground() { publishProgress(0); // Do some stuff publishProgress(10); // Do some stuff publishProgress(100); } @UiThread void publishProgress(int progress) { // Update progress views }}
@ OnActivityResult@OnActivityResult(REQUEST_CODE) void onResult(int resultCode, Intent data) { } @OnActivityResult(REQUEST_CODE) void onResult(int resultCode) { } @OnActivityResult(ANOTHER_REQUEST_CODE) void onResult(Intent data) { } @OnActivityResult(ANOTHER_REQUEST_CODE) void onResult() { }