ÀÎÅÙÆ®(Intent)·Î µ¥ÀÌÅÍ Àü´Þ(putExtra, getExtras) |
|
|
 |
8³â Àü |
ÀÎÅÙÆ®(Intent)¸¦ »ç¿ëÇÒ ¶§ µ¥ÀÌÅ͸¦ Àü´ÞÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ À̾߱â ÇÏ°Ú´Ù.
Intent·Î ´Ù¸¥ Activity(¿¹, AnotherActivity.class)¸¦ ½ÇÇà½Ãų ¶§´Â ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.
Intent intent = new Intent(getApplicationContext(), AnotherActivity.class);
startActivity(intent);
±×·±µ¥, ¿©±â¿¡ Ãß°¡·Î AnotherActivity µ¥ÀÌÅ͸¦ Àü´ÞÇÏ°í ½ÍÀ» ¶§°¡ ÀÖ´Ù.
À̶§ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀÌ putExtra() ´Ù.
Intent intent = new Intent(getApplicationContext(), AnotherActivity.class);
intent.putExtra("name", "rio");
intent.putExtra("age", 10);
startActivity(intent);
±×¸®°í, AnotherActivity¿¡¼´Â ´ÙÀ½°ú °°ÀÌ getExtras()¸¦ ÀÌ¿ëÇؼ µ¥ÀÌÅ͸¦ ¹ÞÀ» ¼ö ÀÖ´Ù.
(¹Ù·Î µ¥ÀÌÅ͸¦ ¹ÞÀ» °ÍÀ̹ǷΠº¸ÅëÀº onCreate() ¸Þ¼µå¿¡ ±¸Çö ÇÑ´Ù.)
Intent intent = getIntent();
String name = intent.getExtras().getString("name");
int age = intent.getExtras().getInt("age");
(*** Âü°í 1 ***)
startActivity() °¡ ¾Æ´Ï°í startActivityForResult()¸¦ »ç¿ëÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.
public static final int REQUEST_CODE = 1001;
....
Intent intent = new Intent(getApplicationContext(), AnotherActivity.class);
intent.putExtra("name", "rio");
intent.putExtra("age", 10);
startActivityForResult(intent, REQUEST_CODE);
....
protected void onActivityResult(int requetCode, int resultCode, Intent Data) {
super.onActivityResult(requestCode, resultCode, Data);
if(requestCode == REQUEST_CODE) {
if(resultCode == RESULT_OK) {
String phoneNumber = data.getExtras().getString("phoneNumber");
}
}
}
AnotherActivity¿¡¼ µ¥ÀÌÅ͸¦ ³Ö´Â ºÎºÐÀ» º¸¸é
Intent resultIntent = new Intent();
resultIntent.putExtra("phoneNumber", "010-1234-5678");
setResult(RESULT_OK, resultIntent);
ÀÌ ÄÚµå´Â Activity °£ÀÇ µ¥ÀÌÅÍ Àü´ÞÀ» °¡´ÉÇÏ°Ô ÇÏ´Â ÄÚµåÀ̹ǷΠÀ¯¿ëÇÏ°Ô »ç¿ëµÉ ¼ö ÀÖ´Ù.
(REQUEST_CODE, RESULT_OK ºÎºÐ¿¡´Â ÀÓÀÇÀÇ integer °ªÀ» ³Ö¾îµµ µÈ´Ù.)
(*** Âü°í 2 ***)
startActivityForResult()¿Í setResult() Äڵ带 Á» ´õ °íÄ¡¸é ´ÙÀ½°ú °°´Ù.
»óȲ : ÇϳªÀÇ Activity¿¡¼ ¿©·¯ Activity·Î µ¥ÀÌÅ͸¦ ÁÖ°í ¹Þ¾Æ¾ß ÇÒ °æ¿ì
public static final int REQUEST_CODE_FOR_ACTIVITY_1 = 1001;
public static final int REQUEST_CODE_FOR_ACTIVITY_2 = 1002;
....
startActivityForResult(intent, REQUEST_CODE_ACTIVITY_1);
startActivityForResult(intent, REQUEST_CODE_ACTIVITY_2);
....
protected void onActivityResult(int requetCode, int resultCode, Intent Data) {
super.onActivityResult(requestCode, resultCode, Data);
switch (requestCode) {
case REQUEST_CODE_ACTIVITY_1:
if(resultCode == RESULT_OK && Data != null) {
// °á°ú°¡ OK ÀÏ ¶§ ÇÒÀÏ
}else if(resultCode == RESULT_CANCELED) {
// °á°ú°¡ CANCEL ÀÏ ¶§ ÇÒÀÏ
}
break;
case REQUEST_CODE_ACTIVITY_2:
if(resultCode == RESULT_OK && Data != null) {
// °á°ú°¡ OK ÀÏ ¶§ ÇÒÀÏ
break;
}
}
|
|
̵̧ : 270 |
̵̧
¸ñ·Ï
|
|