TOP
본문 바로가기
[Java]/Java Android

[Android] 텍스트뷰 동적 생성

by 기록자_Recordian 2025. 4. 29.
728x90
반응형
이전 내용
 

[Android] 레이아웃 - 2 : 제약 레이아웃, 레이아웃 편집기

이전 내용 [Android] 레이아웃 - 1이전 내용 [Android] 위젯 - 이미지뷰(Image View)이전 내용 [Android] 계산기 만들기이전 내용 [Android] 회원정보 출력 기능 만들기이전 내용 [Android] 난수 생성기 만들기이전

puppy-foot-it.tistory.com


텍스트뷰 동적 생성

 

동적 텍스트 뷰 생성은 앱의 유연성과 사용자 상호작용을 높여주며, 상황에 따라 변화하는 내용을 효과적으로 표시할 수 있는 기능이다.

<?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/mainLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/addButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="텍스트 뷰 추가" />

</LinearLayout>

 

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

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private LinearLayout mainLayout;
    private Button addButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mainLayout = findViewById(R.id.mainLayout);
        addButton = findViewById(R.id.addButton);

        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TextView textView = new TextView(MainActivity.this);
                textView.setText("동적으로 추가된 텍스트 뷰");

                LinearLayout.LayoutParams layoutParams =
                        new LinearLayout.LayoutParams(
                                LinearLayout.LayoutParams.WRAP_CONTENT,
                                LinearLayout.LayoutParams.WRAP_CONTENT);
                textView.setLayoutParams(layoutParams);

                mainLayout.addView(textView);
            }
        });
    }
}

 

변수 선언

  • LinearLayout mainLayout: 동적으로 텍스트 뷰를 추가할 부모 레이아웃.
  • Button addButton: 클릭할 버튼.

onCreate 메서드

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  • 액티비티 생성 시 호출.
  • setContentView로 XML 레이아웃 파일 설정.

UI 요소 초기화

mainLayout = findViewById(R.id.mainLayout);
addButton = findViewById(R.id.addButton);
  • findViewById를 사용하여 XML에서 UI 요소 참조.

ClickListener 설정

addButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
  • 버튼 클릭 시 동작을 정의하는 리스너를 설정합니다.

동적 텍스트 뷰 생성

TextView textView = new TextView(MainActivity.this);
textView.setText("동적으로 추가된 텍스트 뷰");
  • 새로운 TextView 객체를 생성하고 텍스트 설정

LayoutParams 설정

LinearLayout.LayoutParams layoutParams =
        new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);
textView.setLayoutParams(layoutParams);
  • 생성된 텍스트 뷰의 너비와 높이를 WRAP_CONTENT로 설정.

텍스트 뷰 추가

mainLayout.addView(textView);
  • mainLayout에 생성한 텍스트 뷰를 추가하여 화면에 표시.

[코드 실행 결과]

 


다음 내용

 

728x90
반응형