티스토리 뷰
startActivityForResult 사용 방법
Activity를 실행 할 때 startActivity 를 사용한다.
실행한 Activity 가 종료되고 다시 이전의 화면이 보여지는 상황에서
종료되는 Activity로 부터 이전의 화면에서 값을 받고자 할 때 startActivityForResult를 사용한다.
startActivityForResult( intent, requestCode );
MainActivity
MainActivity 에서
1 2 3 4 5 | Intent intent = new Intent(v.getContext(), SubActivity.class); intent.putExtra("firstNum", firstNum); intent.putExtra("secondNum", secondNum); startActivityForResult(intent, 1000); | cs |
SubActivity로 보내는 Intent를 생성하고, firstNum과 secondNum을 전송한다.
이때 startActivityForResult를 SubActivity와 데이터를 주고받기 위해서 requestCode를 1000으로 보낸다.
SubActivity
SubActivity에서는
MainActivity에서 전송한 데이터를 받고 새로운 데이터를 전송할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Intent intent = getIntent(); firstNum = Integer.parseInt(intent.getStringExtra("firstNum")); secondNum = Integer.parseInt(intent.getStringExtra("secondNum")); resultText = firstNum + " " + secondNum; tvResult.setText(resultText); okBtn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Intent reIntent = new Intent(); reIntent.putExtra("resultText", resultText); setResult(8, reIntent); finish(); } }); | cs |
intent.getStringExtra로 데이터를 받고
다시 새로운 Intent를 생성하여 보낼 데이터를 putExtra로 전송한다.
그리고 setResult 로 resultCode 8 번을 설정하여 호출한 Activity에게 돌려준다.
그럼 MainActivity에서 SubActivity에서 보낸 데이터를 받는 작업을 해야한다.
MainActivity
1 2 3 4 5 6 7 8 | @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == 1000 && resultCode == 8) { tvResult.setText(data.getStringExtra("resultText")); } } | cs |
MainActivity에서 SubActivity로 보낸 requestCode와
SubActivity에서 MainActivity로 보낸 resultCode를 확인한 이후 동작할 액션을 정할 수 있다.
'Android' 카테고리의 다른 글
[Android] AlertDialog 를 이용한 알림창 (0) | 2016.07.21 |
---|---|
[Android] onBackPressed 뒤로가기 버튼 처리 (0) | 2016.07.21 |
[Android] 간단한 계산기 (0) | 2016.07.20 |
[Android] 안드로이드 스튜디오 단축키 (0) | 2016.07.11 |
[Android] 안드로이드 스튜디오 설치 (0) | 2016.07.11 |
- Total
- Today
- Yesterday
- controller
- RequestMapping
- BFS
- servlet
- DFS
- onPostExecute
- 예외처리
- algorithm
- java
- restfb
- table
- 안드로이드 스튜디오
- order by
- boj
- onBackPressed
- Baekjoon Online Judege
- 이클립스
- Spring
- 자바
- DP
- AlertDialog.Builder
- REDIRECT
- maven
- sort
- jsp
- list
- 안드로이드 비콘
- indexOf
- mybatis
- INSERT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |