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
반응형
'[Java] > Java Android' 카테고리의 다른 글
[Android] 컴파운드 버튼 1 - 체크 박스 (0) | 2025.04.30 |
---|---|
[Android] 이벤트 리스너 예제 (0) | 2025.04.29 |
[Android] 레이아웃 - 2 : 제약 레이아웃, 레이아웃 편집기 (0) | 2025.04.29 |
[Android] 레이아웃 - 1: 레이아웃 종류 (0) | 2025.04.29 |
[Android] 위젯 - 이미지뷰(Image View) (0) | 2025.04.29 |