2011. 12. 9. 11:08
안드로이드 액티비티(Android Activity) 돌아올 때 값을 받아오기
2011. 12. 9. 11:08 in JavaAndroid
안드로이드 Intent로 액비티비를 전환하는 네 번째 경우, 이동할 때 전달한 값이 없더라도 이동한 액티비티에서 생성하거나 처리한 값을 다시 받아오는 방식.
네 번째 버튼, 이동한 액티비티에서 되돌아올때 값을 받아오는 경우.
IntentTestMainActivity.java <---- ResultActivity.java
받아오는 값은 200원...
전달할 값은 항상 putExtra("전달명", "넘겨주는 값") ; // 숫자면 "" 없이 그냥 입력.
넘겨주는 액티비티에서 처리하는 메써드는 setResult(Activity.RESULT_OK, intent);
메인 파일, IntentTestMainActivity.java
package net.br ;
import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.widget.Toast;
public class IntentTestActivity extends Activity {private static final int REQUEST_CODE_1 = 01 ;/** Called when the activity is first created. */@Override
public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);
}
// 값을 받아오는 Result Intentpublic void onClickIntentWithResult(View v){Intent intent = new Intent(this, WithResultActivity.class);this.startActivityForResult(intent, REQUEST_CODE_1);}
// 값을 받아오는 경우의 처리@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubsuper.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK){if(requestCode == REQUEST_CODE_1){String result = data.getStringExtra("result");Toast.makeText(this, "RESULT=" + result,Toast.LENGTH_SHORT).show();
}
}
else {Toast.makeText(this, "취소하고 그냥 옴.", Toast.LENGTH_SHORT).show();}
}
}
package net.br ;
import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;
public class ResultActivity extends Activity {@Override
protected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);this.setContentView(R.layout.with_result);}
public void onClickOk(View v){Intent intent = new Intent();intent.putExtra("result", "200원 받고 돌아왔음");this.setResult(Activity.RESULT_OK, intent);this.finish();}
public void onClickCancel(View v){this.setResult(Activity.RESULT_CANCELED);this.finish();}
}
액티비티 하단의 토스트 확인 메시지는 넘겨주는 액티비티의 setResult(Activity.RESULT_OK, intent); 메써드에서 받아온 것을 메인 파일, IntentTestMainActivity.java에서 onActivityResult(int requestCode, int resultCode, Intent data)메써드로 처리한다.
즉, final로 선언된 REQUEST_CODE_1 값에 해당하면 getStringExtra(“전달명”) 또는 getIntExtra("전달명")으로 변수에 값을 입력해서 처리한다.
'JavaAndroid' 카테고리의 다른 글
안드로이드 리스트뷰(ListVeiw) + 커스텀 어댑터(Custom Adapter) (0) | 2011.12.19 |
---|---|
안드로이드(Android) DB SQLite 사용하기 (0) | 2011.12.15 |
Springsource Tool Suite 설치하기 (0) | 2011.12.14 |
안드로이드 액티비티 인텐트(Android Activity Intent) 값을 전달하고, 받아오기 (0) | 2011.12.13 |
안드로이드 액티비티(Android Activity) Intent로 이동할 때 값을 넘겨주기 (0) | 2011.12.08 |
안드로이드 인텐트, 전화걸기나 홈페이지 보기 Action Intent (0) | 2011.12.07 |
안드로이드 액티비티(Android Activity) Intent로 전환 이동하기 (0) | 2011.12.06 |
안드로이드 `TabWidget`으로 멀티탭 페이지 만들기 (0) | 2011.12.02 |