1. TextView 사용법을 알아보자.

TextView는 안드로이드 UI를 구성함에 있어 화면에 텍스트를 표시하는 기능을 담당한다.

안드로이드에서 제공하는 위젯 중 가장 많이 사용되는 위젯이다.

텍스트 출력 기능을 가진 기본 위젯이므로, 텍스트와 연관된 기능을 포함하는 Button 또는 EditText의 부모 클래스이다.

 

 

2. 코드를 입력해보자.

TextView를 화면에 표시하기 위해서는 Layout 리소스 XML에 TextView를 추가하면 된다.

 

Layout/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:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <!-- 앱에서 실제 출력하는 텍스트 구문 -->

    <TextView
        android:id="@+id/text1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="안녕하세요!"
        android:textColor="#F816F4"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/text2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="구동엽입니다."
        android:textColor="#FF0000" />


</LinearLayout>

 

결과

 

 

3. JAVA 소스에서 TextView의 텍스트를 변경해보자.

앱 실행 시 처음 보여질 텍스트를 지정하기 위해 "text" 속성을 사용하였는데 만약 앱 실행 중 동적으로 텍스트를 변경하려면 어떻게 해야 할까?

 

1. Layout 리소스 xml에 추가한 TextView에 대한 참조를 얻는다.

2. setText() 함수를 호출한다.

package com.example.test3;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public class MainActivity extends AppCompatActivity {

    //각각의 기능 구현
    TextView text1;
    TextView text2;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); // 기본 초기화를 수행
        EdgeToEdge.enable(this); //앱의 화면을 가장자리까지 확장하는 기능을 활성화 -> 앱이 디바이스 화면의 가장자리까지 찬다.
        setContentView(R.layout.activity_main); // 액티비티의 레이아웃을 설정한다. activity_main 레이아웃 파일의 내용이 화면에 표시된다.

        // 레리아웃으링 연결이 된다. 이제 동적으로 사용이 가능하다.
        text1 = findViewById(R.id.text1);
        text2 = findViewById(R.id.text2);

        text1.setText("텍스트 변경사항");
        text2.setText("구동엽 아니다.");


        //main이라는 ID를 가진 뷰에 대해 WindowInsets(시스템UI)를 적용하는 리스너를 설정한다.
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            // 뷰의 패딩을 시스템 바의 크기에 맞게 설정한다. 이렇게하면 시스템 바가 화면에 표시될 때 뷰의 내용이 잘리지 않는다.
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });

    }
}

 

결과