9. 【Android/Kotlin】동적으로 View 추가

소개



DreamHanks의 MOON입니다.

지난번에는 WebView 라는 View에 대해 설명했습니다.
8. 【Android/Kotlin】웹뷰(WebView)

이번에는 동적으로 View를 추가하는 방법에 대해 설명하겠습니다.

동적으로 추가 의미



이전에는 View 및 레이아웃을 추가하기 위해 레이아웃의 xml 파일에 추가했지만,
그 방법은 정적으로 추가하는 방법입니다.

예) 채팅 앱에서 대화 내용이 추가되면 화면에 텍스트를 추가해야 하는 상황이 있습니다.

동적으로 View를 추가하는 방법은 Activity에서 View를 추가하는 것입니다.

이번에는 텍스트를 입력하고 그 텍스트를 화면에 동적으로 추가하여 표시합니다.

Activity에서 View 추가



· 레이아웃 xml 만들기



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

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/text_et"
        android:inputType="text"
        android:hint="テキストを入力してください。"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/add_btn"
        android:text="追加"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/text_ll"
        android:orientation="vertical"/>

</LinearLayout>

xml에는 빈 레이아웃을 버튼 아래에 추가합니다.

· Activity 만들기

AddTextViewActivity.kt
package com.example.practiceapplication

import android.app.AlertDialog
import android.content.DialogInterface
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log.d
import android.view.ContextThemeWrapper
import android.widget.*
import kotlinx.android.synthetic.main.activity_listview.*
import javax.xml.validation.Validator

class AddTextViewActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_addview)

        val text_et = findViewById<EditText>(R.id.text_et)              //EditText(入力エリア)
        val add_btn = findViewById<Button>(R.id.add_btn)                //追加ンボタン

        val text_ll = findViewById<LinearLayout>(R.id.text_ll)          //空LinearLayout

        //追加ボタンのクリックイベントを設定
        add_btn.setOnClickListener {
            //テキストビューを生成
            val textView = TextView(this)

            //生成されたテキストに入力されたテキストを代入
            textView.text = text_et.text.toString()

            //テキストビューのサイズを修正
            textView.textSize = 15f

            //ボタン下の空LinearLayoutにテキストビューを追加
            text_ll.addView(textView)
        }

    }

}

앱 시작



· 초기 화면


· こんにちは를 입력하고 버튼을 클릭하면


よろしくお願いします。 까지 입력하고 버튼을 클릭한 경우


끝에



이번에는 `동적으로 View를 추가하는 방법을 설명했습니다.

다음 번에는 라이브러리를 추가하는 방법에 대해 설명합니다.
10. 【Android/Kotlin】 라이브러리 추가

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

좋은 웹페이지 즐겨찾기