반응형
- 코드를 통해 View 객체를 생성 -> layout에 추가
- View 객체 생성시 생성자에 Context() 객체 설정
- Context : 어떠한 작업을 하기 위한 정보를 갖고 있는 객체를 통칭 Ex) 그래픽작업 -> 해당 디바이스가 지원하는 색상, 가로세로길이, bit 정보 등 다양한 정보 필요함. 이때 이런 정보를 담고 있는 객체를 Graphic Context 라 부를 수 있음
- 안드 개발시 Context를 구분할 필요는 없고 지정만 잘 해주면 됨
- Activity가 Context를 상속받고 있기 때문에 this 를 넣어주면 되고, 그 외에는 Context를 구하는 다양한 메서드를 통해 설정
LayoutParam
- View가 배치될 때 필요한 공통 속성을 설정할 수 있는 객체
- 가로, 세로 길이 설정 필요
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater) // 뷰바인딩 객체
val view = binding.root //뷰바인딩을 통해 레이아웃과 뷰가 결합 -> .root 를 통해 View 객체만를 뽑아내는(?)
setContentView(view)
// 가로 세로 길이 지정 (어디 배치할지에 따라 맞는 LinearLayout 고르면 됨) *어떤 버전에서는 이거 안 하면 오류남
val param1 = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
)
val btn1 = Button(this)
btn1.text = "추가된 버튼입니다."
btn1.layoutParams = param1
val img1 = ImageView(this)
img1.layoutParams = param1
img1.setImageResource(R.drawable.img6)
btn1.setOnClickListener {
binding.textView.text = "추가된 버튼을 눌렀스빈다."
}
binding.button.setOnClickListener {
binding.container.addView(btn1) //추가
binding.container.addView(img1)
}
binding.button2.setOnClickListener {
binding.container.removeView(btn1) //제거
binding.container.removeView(img1)
}
}
반응형
'Android' 카테고리의 다른 글
[안드로이드/데이터 관리] 파일 입출력 (4) | 2023.04.29 |
---|---|
[안드로이드/데이터 관리] Application Class (0) | 2023.04.29 |
[안드로이드/데이터입출력] XML을 이용해 View 객체 생성 (0) | 2023.04.29 |
[안드로이드/Error] ViewModelProvider.Factory 구현하라고 뜨는 오류 (0) | 2023.04.28 |
[안드로이드/AppBar] DrawerLayout 와 Drawer Navigation Activity (0) | 2023.04.28 |