Repository navigation
Expand file tree
/
Copy pathOnActivityResult.java
More file actions
136 lines (128 loc) · 3.9 KB
/
Copy pathOnActivityResult.java
File metadata and controls
136 lines (128 loc) · 3.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/**
* Copyright (C) 2010-2015 eBusiness Information, Excilys Group
*
* 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
*
* Unless required by applicable law or agreed To in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package org.androidannotations.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* <p>
* This annotation is intended to be used on methods to receive results from a
* previously started activity using
* {@link android.app.Activity#startActivityForResult(android.content.Intent, int)
* Activity#startActivityForResult(Intent, int)} or the generated
* <code>IntentBuilder.startActivityForResult()</code> method of the activity.
* </p>
* <p>
* The annotation value must be an integer constant that represents the
* <b>requestCode</b> associated with the given result.
* </p>
* <p>
* The method may have multiple parameter :
* </p>
* <ul>
* <li>A {@link android.content.Intent Intent} that contains data</li>
* <li>An <code>int</code> or an {@link java.lang.Integer Integer} to get the
* resultCode</li>
* <li>Any native, {@link android.os.Parcelable Parcelable} or
* {@link java.io.Serializable Serializable} parameter annotated with
* {@link org.androidannotations.annotations.OnActivityResult.Extra
* OnActivityResult.Extra} to get an object put in the extras of the intent.</li>
* </ul>
*
* <blockquote>
*
* Some usage examples of @OnActivityResult annotation:
*
* <pre>
* @OnActivityResult(<b>REQUEST_CODE</b>)
* void onResult(int resultCode, Intent data) {
* }
*
* @OnActivityResult(<b>REQUEST_CODE</b>)
* void onResult(int resultCode) {
* }
*
* @OnActivityResult(<b>ANOTHER_REQUEST_CODE</b>)
* void onResult(Intent data) {
* }
*
* @OnActivityResult(<b>ANOTHER_REQUEST_CODE</b>)
* void onResult(@OnActivityResult.Extra anExtra) {
* }
* </pre>
*
* </blockquote>
*
* @see EActivity
* @see android.app.Activity#startActivityForResult(android.content.Intent, int)
* @see android.app.Activity#onActivityResult(int, int, android.content.Intent)
*/
@Retention(RetentionPolicy.CLASS)
@Target(ElementType.METHOD)
public @interface OnActivityResult {
/**
* The <b>requestCode</b> associated with the given result.
*
* @return the requestCode
*/
int value();
/**
* <p>
* Use on any native, {@link android.os.Parcelable} or
* {@link java.io.Serializable} parameter of an {@link OnActivityResult}
* annotated method to bind it with the value from the Intent.
* </p>
* <p>
* The annotation value is the key used for the result data. If not set, the
* field name will be used as the key.
* </p>
*
* <blockquote>
*
* Some usage examples of @Result annotation:
*
* <pre>
* @OnActivityResult(REQUEST_CODE)
* void onResult(int resultCode, Intent data, <b>@Extra String value</b>) {
* }
*
* @OnActivityResult(REQUEST_CODE)
* void onResult(int resultCode, <b>@Extra(value = "key") String value</b>) {
* }
*
* @OnActivityResult(REQUEST_CODE)
* void onResult(<b>@Extra String strVal</b>, <b>@Extra int intVal</b>) {
* }
* </pre>
*
* </blockquote>
*
* @see android.app.Activity#onActivityResult(int, int,
* android.content.Intent)
* @see OnActivityResult
*/
@Retention(RetentionPolicy.CLASS)
@Target(ElementType.PARAMETER)
public @interface Extra {
/**
* They key of the result data.
*
* @return the key
*/
String value() default "";
}
}