일용직 코딩노동자

Intent 화면전환 시 데이터전달과 받는과정. 본문

Android

Intent 화면전환 시 데이터전달과 받는과정.

사용자 일용직 코딩노동자 2019. 11. 19. 13:00

뭔가 버튼을 누르면 화면이 이동되게 하고싶으신 경우가 많습니다.

단순히 이동만 되게 한다면 매우 쉽게 느끼는분도 계십니다.

제가 있는 오픈채팅톡방에 오시는분들 대부분이 Intent로 데이터를 전달하는 부분은 모르셔서 포스팅해봅니다.

 

String sub="안녕하세요";

Btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(getApplicationContext(),subActivity.class);
                intent.putExtra("1",sub);
                intent.putExtra("2","Hello world");
                startActivityForResult(intent,1000);
                finish();
            }
        });

이런식으로 임의의 버튼 리스너가 하나있습니다.

그안에는 버튼을 눌렀을때의 화면전환과 데이터전달 코드가있습니다.

 

Intnet intent << Intent를 intent라는 이름으로 쓸것이다 정의해줬습니다.

그후에 내가 어디 화면으로 이동하고싶은지 이동하고자하는 Activity의 이름을 적어줍니다.

저는 subActivity.class라고 적어줬습니다.

그리고 가운데 2줄의 putExtra가 없다면 그냥 화면전환만 이뤄지고 데이터 전달은 이뤄지지않습니다.

 

여기서 putExtra의 파라미터값을 보시면 처음에 1이 있구요, 그다음에 sub라는 값이있습니다. sub는 안녕하세요

그리고 그다음은 2가있고 Hello world가 있습니다.

 

이렇게 데이터를 subActivity로 전송합니다.

그럼 startActivityForResult로 Intent를 시작합니다.

Intent intent = getIntent(); /*데이터 수신*/
String str1 = intent.getExtras().getString("1");
String str2 = intent.getExtras().getString("2");



 

서브에서 이렇게 적어주시면 Key값과 value값으로 구분지어서 보낸 데이터를 받을수있습니다.

 

추가로

 

메니페스트 application 괄호 안쪽에

<activity android:name=".subActivity"/>

라고 인텐트로 이동할 클래스명을 적어주셔야합니다.

0 Comments
댓글쓰기 폼