728x90
지금까지 예제는 layout 폴더에 있는 xml 파일을 통해 화면을 구성하였다.
이는 Activity가 처음 나타날 때의 모습을 설정하게 된다.
만약 실행 중 View를 만들어 추가할 경우에는 코드를 통해 View를 만들어 추가해줘야 한다.
LayoutInflater를 사용하면 xml로 만든 화면 모양을 View 객체로 만들어 사용할 수 있다.
layoutInflater.inflate 메서드 : layoutInflater.inflate 메서드를 사용하면 XML을 통해 View 객체를 만들 수 있다.
val sub2 = layoutInflater.inflate(R.layout.layout_sub2, null)
val sub3 = layoutInflater.inflate(R.layout.layout_sub3, container)
package com.example.xml
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.layout_sub1.view.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// View 객체를 생성한다
val sub1 = layoutInflater.inflate(R.layout.layout_sub1,null)
val sub2 = layoutInflater.inflate(R.layout.layout_sub2,null)
val sub3 = layoutInflater.inflate(R.layout.layout_sub3,container)
sub1.run {
sub1_btn.setOnClickListener {
sub1_text.text = "sub1의 버튼을 눌렀습니다."
textView.text = "sub1의 버튼을 눌렀습니다."
}
}
button.setOnClickListener {
container.addView(sub1)
container.addView(sub2)
}
button2.setOnClickListener {
container.removeView(sub1)
container.removeView(sub2)
// container에 직접 지정한 layout은 삭제되지 않음
// container.removeView(sub3)
}
}
}
728x90
'안드로이드 > 데이터 입출력' 카테고리의 다른 글
안드로이드 sqlite 1 (0) | 2022.06.23 |
---|---|
안드로이드 assets (0) | 2022.06.22 |
안드로이드 파일 입출력 (0) | 2022.06.21 |
안드로이드 Application Class (0) | 2022.06.21 |
안드로이드 코드 View (0) | 2022.06.20 |