«   2024/09   »
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
Archives
Today
Total
관리 메뉴

[위미르 개발팀] Android, iOS , Web 제작

[안드로이드 레이아웃] Activity 전환 본문

개발자료/Android

[안드로이드 레이아웃] Activity 전환

위미르개발팀 2017. 9. 25. 19:20

모바일 앱은 화면이 여러개 일수 있는데, 이것을 액티비티 하나에 프래그먼트만으로 구현 할수도 있겠지만, 그게 아닐 경우도 있습니다.


액티비티는 기존의 액티비티에서 호출하는 형식으로 전환되게 됩니다.


액티비티를 전환하는 메서드는 두가지가 있습니다.


startActivity(Intent)와 startActivityForResult(Intent, code)


인데요 두가지의 차이는 이름을 보시면 대충 감이 오시겠지만, 전자는 그냥 액티비티 하나를 띄울 뿐이고, 후자는 새로운 액티비티로부터 결과를 받을 필요가 있을때 사용합니다.


예를들어서 다른 액티비티의 클래스명이 SubActivity입니다.


이때 사용 할수 있는 코드는 이러합니다.


먼저 액티비티를 띄우기만 하는 코드 입니다.


1
2
Intent intent = new Intent(this, SubActivity.class);
startActivity(intent);
cs


새로 띄우는 액티비티의 클래스명을 적고 인텐트를 생성해서 보여줍니다.


다음은 결과가 필요한 액티비티 호출입니다.


1
2
3
4
5
private static int RES_CODE = 1234;
Intent intent = new Intent(this, SubActivity.class);
startActivityForResult(intent, RES_CODE);
 
 
cs


제가 RES_CODE라는 상수를 만든것은 그냥 제가 알아볼수 있는코드를 하나 생성해준것입니다.


해당코드는 결과를 받을때 필요 합니다.

 

1
2
3
4
5
6
7
8
9
10
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            switch (requestCode) {
            case RES_CODE:
            break;
            }
        }else{
        }
    }
cs


액티비티의 결과를 받는 메서드입니다.


먼저 resultCode로 액티비티가 자기 할일을 하고 종료된것이 맞는지 체크를 합니다.

만약 뒤로가기를 하거나 해서 이전 액티비티로 돌아왔다면 else에 걸리게 될것입니다.


그리고 switch로 처음 startActivityForResult에 넣어준 코드를 찾아서 처리해줍니다.


만약 추가로 사용하는 액티비티가 하나뿐이라면 굳이 switch로 골라서 처리해주지 않아도 상관없습니다.




희 위미르에서는 모바일 어플리케이션(Android/iOS), Web 개발을 해드리고 있습니다.


문의 전화 : 070-4177-3962

Comments