달달한 스토리

728x90
반응형

 

뭔가 자바를 배울때 기초부터 배우는 느낌을

 

느껴보는거라 재밌다.

 

오늘은 코틀린으로 화면전환(Intent)를 배워보겠다.

 


인텐트

 

이제부터 코틀린에서 사용하는 뷰바인딩에 대한 설명은 하지 않겠다.

 

매번 뷰바인딩을 하고 있으니, 모르시는 분들은 코틀린 카테고리를 확인해보면

 

알 수 있다.

 

우선 메인액티비티와 서브액티비티를 만들겠다.

 

누가 봐도 왼쪽이 메인이고, 오른쪽이 서브이다.

 

메인에서 서브로 인텐트를 해보겟다.

 

자바랑 별차이는 없다.

 

다음은 메인액티비티의 코틀린 코드이다.

 

class MainActivity : AppCompatActivity() {
    private var mbinding : ActivityMainBinding? = null
    private val binding get() = mbinding!!
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        mbinding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        binding.button2.setOnClickListener{
            val intent = Intent(this, SubActivity::class.java)
            startActivity(intent)
        }

        
    }
}

 

버튼을 눌렀을 때,

 

서브액티비티로 이동이 가능하다.

 

자바였다면,

 

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

이런식으로 작성을 했을 것이다.

 

지금보니 크게 다른 점은 없다.

 

여기서 더블콜론(::) 에 대해 잠깐 설명하겠다.

 

우선 리플렉션(Reflection) 이라는것에 대해 먼저 알 필요가 있다.

 

https://medium.com/harrythegreat/%EC%BD%94%ED%8B%80%EB%A6%B0%EC%9D%98-%EB%8D%94%EB%B8%94%EC%BD%9C%EB%A1%A0-%EC%B0%B8%EC%A1%B0-73ff25484586

 

코틀린의 더블콜론(::) 참조

평소 더블콜론을 사용할때 자바의 클래스참조로 쓰이는 리플렉션과 같은 용도로 사용한다고만 이해하고 사용하는경우가 많았습니다.이번에 한번 더 정리를 하고자 작성하였습니다.

medium.com

리플렉션에 대한 내용은 이 곳을 참고하였다.

 

리플렉션이란 코드를 작성하는 시점에는 런타임상 컴파일된

 

바이트코드에서 내가 작성한 코드가 어디에 위치한지 알 수 없기 때문에 

 

바이트코드를 이용해 내가 참조하려는 값을 찾기 위해 사용하는 것을 말한다.

 

위와 같이 다른 액티비티로 넘어갈때, 내가 참조하려는 값을 알려주기 위해 더블콜론을

 

사용하는걸로 볼 수 있다.

 

그리고 끝에 .java를 붙이는 것은

 

자바에서 쓰는 클래스와 코틀린에서 사용하는 클래스가 다르기 때문이다.

 

자바에서는 Class를 리턴하고, 코틀린에서는 KClass를 리턴합니다.

 

이 때, ".Java"를 이용하여 자바클래스 값을 받습니다.

 

그러하여 서브액티비티에 값을 참조하여

 

startActivity를 이용해 인텐트를 하여 화면을 전환할 수 있다는 것을 알 수 있습니다.

728x90
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading