3. 【Android/Kotlin】 화면 천이

소개



DreamHanks의 MOON입니다.

지난번에는 앱 화면에 버튼을 추가하고 버튼에 이벤트 기능을 추가해 보았습니다.
2. 【Android/Kotlin】 버튼 추가

이번에는 화면을 천이시키는 방법과 천이시킬 경우 값도 보내는 방법을 보고 싶습니다.

Intent란?



Intent는 다른 앱 구성 요소에서 작업을 요청할 때 사용할 수 있는 메시징 개체입니다.
・기본적인 사용 예
 ① 액티비티 개시
② 서비스를 개시
③③브로드캐스트를 전달

자세한 개념은
htps : //에서 ゔぇぺぺr. 안 d로이 d. 코 m / 구이 데 / 코 m 포넨 ts / 텐텐 ts-fu l rs # Ko t ぃ
이 링크에서 확인하십시오.

이 사용예중에 이번은 대표적으로 사용하고 있는 ①로 화면 천이를 합니다.

Intent로 화면 전환



· 전환할 새로운 Activity와 xml을 추가합니다.

IntentTestActivity.kt
package com.example.practiceapplication     

import androidx.appcompat.app.AppCompatActivity     
import android.os.Bundle        
import android.widget.TextView      

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

        val intent_contents = findViewById<TextView>(R.id.intent_contents)      

        //Intentオブジェクで「main_tv」というkeyに対する値を代入する   
        val intented_string = intent.getStringExtra("main_tv")      

        intent_contents.text = intented_string      
    }       
}   


<?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:orientation="vertical"      
    tools:context=".IntentTestActivity"     
    android:gravity="center">       

    <TextView       
        android:layout_width="wrap_content"     
        android:layout_height="wrap_content"        
        android:id="@+id/intent_title"      
        android:textSize="40dp"     
        android:text="次の画面です。"        
        android:layout_marginBottom="100dp"/>       

    <TextView       
        android:layout_width="wrap_content"     
        android:layout_height="wrap_content"        
        android:id="@+id/intent_contents"       
        android:textSize="20dp"     
        android:text="ここに以前のテキストが表示" />       

</LinearLayout>     

・MainActivity(전이시키는 화면의 Activity) 파일을 아래와 같이 수정합니다.
package com.example.practiceapplication

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView

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

        val main_tv = findViewById<TextView>(R.id.main_tv)        //画面のテキストヴュー
        val change_btn = findViewById<Button>(R.id.change_btn)    //画面のボタン

        //ボタンクリックイベントリスナー設定
        change_btn.setOnClickListener {
            //Intentオブジェクト生成、遷移画面定義
            val nextIntent = Intent(this, IntentTestActivity::class.java)
            //Intentオブジェクトにテキストの内容をプットする
            nextIntent.putExtra("main_tv", main_tv.text.toString())
            //次のActivity実行
            startActivity(nextIntent)
        }
    }
}

・버튼의 클릭 리스너내에 Intent라고 하는 화면을 천이하기 위한 오브젝트를 생성.
· 화면을 전환하기 전에 putExtra 메서드를 사용하여 첫 화면의 텍스트 문자열을 넣습니다.
· 마지막으로 startActivity 메소드에 intent 객체를 넣어 실행합니다.

앱 시작



· 첫 화면


· 첫 화면에서 버튼을 클릭하는 경우


끝에



이번에는 화면을 천이시키는 방법과 천이시킬 경우 값도 보내는 방법을 보았습니다.

다음 번은 「리스트 뷰」에 대해 보고 싶습니다.
4. 【Android/Kotlin】리스트뷰(ListView)

최신 내용은 아래 링크(DreamHanks의 블로그)에서 확인할 수 있습니다.
DreamHanks 블로그(Android/Kotlin 앱 개발)

좋은 웹페이지 즐겨찾기