이번시간에는 텍스트뷰를 동적으로 생성하는 방법을 알아보겠습니다.
미리 필요한 텍스트뷰를 만들어서 사용할 수도 있지만, 상황에 따라서 동적으로 생성이 필요할 수도있습니다
1. 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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="120dp"
android:orientation="horizontal">
<Button
android:id="@+id/createTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="텍스트뷰 동적생성"/>
</LinearLayout>
<LinearLayout
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="#9DCFFF"
android:orientation="horizontal"
/>
</LinearLayout>
2. MainActivity.java
버튼을 클릭하면 createTextView()라는 이름의 메소드를 호출합니다.
만들어 놓은 createTextView()메소드안에는 텍스트뷰를 동적으로 생성해주는 소스가
들어 있습니다. 설명을 달아 놓았으니 읽어보시면서 따라 해보시면 됩니다.
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
LinearLayout listView; //레이아웃 객체 생성
Button createTextView; //버튼 객체 생성
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
createTextView = findViewById(R.id.createTextView);
createTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
createTextView();
}
});
}
/**
* 텍스트뷰 생성
*/
private void createTextView(){
//1. 텍스트뷰 객체생성
TextView textViewNm = new TextView(getApplicationContext());
//2. 텍스트뷰에 들어갈 문자설정
textViewNm.setText("텍스트 생성");
//3. 텍스트뷰 글자크기 설정
textViewNm.setTextSize(12);//텍스트 크기
//4. 텍스트뷰 글자타입 설정
textViewNm.setTypeface(null, Typeface.BOLD);
//5. 텍스트뷰 ID설정
textViewNm.setId(0);
//6. 레이아웃 설정
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT
,LinearLayout.LayoutParams.WRAP_CONTENT);
param.leftMargin = 30;
// 7. 설정한 레이아웃 텍스트뷰에 적용
textViewNm.setLayoutParams(param);
//8. 텍스트뷰 백그라운드색상 설정
textViewNm.setBackgroundColor(Color.rgb(184,236,184));
//9. 생성및 설정된 텍스트뷰 레이아웃에 적용
listView.addView(textViewNm);
}
}
3. 실행화면
[안드로이드]빗썸 api를 사용해서 현재가 정보 가져오기 (0) | 2020.11.03 |
---|---|
[안드로이드] 밀어서 화면변경 뷰페이저(View Pager) (0) | 2020.10.30 |
[안드로이드]포그라운드 서비스(Foreground Service) 죽지않는 서비스& 스레드(Thread) (4) | 2020.06.17 |
[안드로이드] 스위치(Switch) 텍스트뷰 색상변경 (0) | 2020.06.11 |
[안드로이드] 현재 WIFI 네트워크 상태 알아보기 manager.getActiveNetworkInfo() (0) | 2020.06.10 |
댓글 영역