안드로이드 스튜디오 버튼 클릭 시 화면전환 코틀린 (Intent)

 

 

 계발에서 개발까지 

 

 

 

화면전환 코틀린 (Intent)

Intent를 활용하여 버튼 클릭 시 액티비티 전환하기.

 

activity_main.xml

간단하게 버튼 하나 만들어 줍니다.

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:background="#2196F3"
    tools:context=".MainActivity">

  <Button
      android:id="@+id/mButton"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="화면전환"/>

</LinearLayout>

 

activity_sub.xml

버튼 클릭 시 전환될 레이아웃도 만들어 줍니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:background="#2196F3"
tools:context=".MainActivity">

<Button
    android:id="@+id/mButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="화면전환"/>

</LinearLayout>

 

MainActivity.java

코틀린은 자바와 다르게 따로id정의를 해줄 필요없이 바로 쓰시면 됩니다. 자바랑 비교시 다른점은 있지만 크게 차이가 없으므로 어려움을 느끼지 못할겁니다.

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

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


    }
}

SubActivity.java

서브액티비티도 정의 해줍니다.

class SubActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_sub)
        
    }
}

 

AndroidManifest.xml

마지막으로 매니페스트의 <application ~ </application> 사이에 <activity android:name=".SubActivity"/> 를 꼭 넣어줘야합니다.

    <application
     


        <activity android:name=".SubActivity"/>
    </application>

매니패스트에 정의를 해주지 않을 경우 밑에 처럼 에러가 나올겁니다.

 

have you declared this activity in your AndroidManifest.xml?  ← 패니패스트에 액티비티를 정의해라.

 

수고하셨습니다 ★

더 많은 정보

 https://deumdroid.tistory.com/ 

 

 

댓글

Designed by JB FACTORY