티스토리 뷰

Android

[Android] startActivityForResult

best 2016. 7. 21. 11:32

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를 확인한 이후 동작할 액션을 정할 수 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함