본문 바로가기
Android Studio

[Android Studio] 액티브간 화면 전환_intent 사용하기(데이터 전달)

by Alkaloid 2021. 3. 9.
반응형
반응형

안드로이드 스튜디오에서 화면 전환이 필요한 순간이 있습니다.

앱개발을 하면 무조건 화면 필요하죠.

 

그럼 화면전환을 위해서는 무엇을 써야할까요?

바로 Intent를 사용하시면 화면 전환을 할수있습니다.

 

새 프로젝트를 만들고, 빈 프로젝트를 하나 더 만들었습니다.

 

처음 만든 액티비티를 1, 두번째 액티비티를 2라고 칭하겠습니다.

 

화면이동에 대해서 먼저 설명을 하겠습니다.

 

액티비티 1에서 아래 코드를 작성해야 합니다.

위 코드를 정리하면 intent를 생성하는데 (액티비티1.this, 액티비티2.class)

을 파라미터로 사용하시면 됩니다.

그리고 액티비티1에서

위 코드를 입력하면 원하는대로 액티비티2로 이동을 하게 됩니다.

 


다음으로는 다음 액티비티로 데이터를 전달해보겠습니다.

안드로이드 스튜디오에서 다른 화면으로 데이터를 전달하기 위해서도 intent를 사용합니다.

아까 위의 두개의 코드는 무조건 작성을 해야합니다.

 

액티비티 1에서 원하는 데이터를 액티비티2로 보내기 위해서는 보내고자 하는 데이터를 변수화 해야합니다.

저는 문자열을 보낼 것이기 때문에 String 으로 선언했습니다.

보시는 코드는 EditText에서 입력한 문자열을 str변수에 넣어주겠다는 말입니다.

위 코드에서 toString()을 사용하지 않으면 에러가 납니다!

그 이유는 저는 String으로 받고있기 때문에 변환을 해줘야 하기 때문이예요.

 

그후 위의 코드를 입력하시면 됩니다.

위 코드는 Extra를 이용하여 액티비티2로 데이터를 전달하려고 하는것입니다.

(이름, 데이터를 담은 변수); 인데요.

여기서 말하는 이름은  액티비티 2에서 동일한 이름을 쓰셔야합니다.

변수명이랑 비슷하다고 생각하시면됩니다.(구분하기 위해)

 

 

이렇게 작성이 끝나면 액티비티1에서의 최종 코드는 아래와 같이 됩니다.

버튼(id.move)을 클릭했을때 인텐트를 생성하는데 액티비티1에서 2로 이동하는 인텐드이다.

에디트텍스트에 입력된 값을 읽는데 문자열로 변화시켜 str에 넣고

putExtra를 이용하여 전달을 할것이다. 전달할때 이름은 str이고, 내용은 str에 담겨있다.

화면전환을 시작한다.

 

라고 생각하시면 될거 같습니다.

 


그럼 다음으로 액티비티2 입니다.

우리는 액티비티1에서 화면전환과 데이터전달을 했습니다.

그럼 액티비티2에서는 무엇을 해야할까요?

 

"전달받은 데이터를 받아야한다"

입니다.

 

그럼 아래의 코드를 보시죠

액티비티2의 코드는 별거 없습니다.

 

그럼 하나하나 살펴보도록 하겠습니다.

1~15번까지는 액티비티를 만들면 자연스레 생기는 함수입니다.

여기서 다른 하나는 10번째줄입니다.

저는 xml에 액티비티1에서 받은 데이터를 적어주기 위해 하나의 텍스트뷰를 만들었습니다.

 

17번째줄은 텍스트 뷰를 사용하기 위해 적은 코드입니다.

 

그럼 우리가 해야할 핵심은 19,20,22번째 줄입니다.

 

19번째줄은 인텐트를 생성하는데 무언가를 받기위한 인텐스 생성입니다.

20번째줄은 받은 str을 새로운 str변수에 넣어주는 코드입니다.

20번째 맨뒤에 "str"보이시나요? 이부분을 액티비티1에서 적은 이름과 동일하게 해야합니다.

 

마지막  22번째는 텍스트뷰의 텍스트 내용을 새롭게 정의해 주는 것입니다.

어떤내용일까요?

 

"액티비티1에서 보내준 내용"

 

반응형