안드로이드 fragment 제작시 supportFragmentManager가 인식이 안 됩니다.
페이지 정보

본문
- 이전글p.373 메인 액티비티에서 연결하기에 문제가 생긴것 같습니다. 21.01.03
- 다음글Android Studio 4.2 Beta2 사용하면서 느낌점을 적어봅니다. (해보면서 글 수정하니 감안해 주세요.개인 상황이니 감안하세요 ^^) 21.01.01
댓글목록

Scott님의 댓글
Scott 작성일
지환님의 댓글의 댓글
지환 작성일
Scott님의 댓글의 댓글
Scott 작성일네 다행이네요. viewBinding 관련해서는 오늘 중에 글을 하나 올리고 링크를 걸어놓겠습니다.

Scott님의 댓글의 댓글
Scott 작성일
viewBinding은 아래 링크를 참조하세요
https://flow9.net/bbs/board.php?bo_table=android&wr_id=27

지환님의 댓글의 댓글
지환 작성일
답변 감사드립니다~!!
그러나 하나 의문이 드는 것이 제가 질문했던 바와 같이 MainActivity말고 다른 class를 만들었을 때, 그 class에서는 viewBinding으로 XML상 ID를 참조할 수 없습니다.
아무래도 ViewBinding을 선언한 것이 MainActivity class이기 때문에 그 안에서만 실행이 되는 것 같습니다.
하여 제가 생각한 바는 새로 만든 class가 MainActivity class를 상속받도록 하여 ViewBinding 기능을 사용하는 것입니다.
ex) class newone () : MainActivity() {
var newContent = binding.~~
}
이렇게 하니 새로 만든 class에서도 ViewBinding을 사용할 수 있는데 혹시 이렇게 사용하는 것이 효율적이고 맞는 방법인가요?
아니면 다른 더 좋은 방법이 있나요?

Scott님의 댓글의 댓글
Scott 작성일
아 이건.. 그... 아답터를 참조하시면 됩니다.
뷰바인딩의 동작원리는
1. 레이아웃파일 -> 바인딩 클래스로 변환
2. 바인딩.inflate(레이아웃인플레이터) 로 실제 바인딩 생성
입니다.
그래서 어떤 클래스든 Context만 전달하면 LayoutInflater.from(context) 로 인플레이터를 생성할 수 있기 때문에, Context만 전달해주면 됩니다.
예를들어 NewOne 클래스라면
class NewOne(val context:Context) {
val binding by lazy {레이아웃Binding.inflate(LayoutInflater.from(context)) }
fun setView() {
binding.textView.text = "바인딩"
}
}
의 형태로 사용할 수 있습니다.

지환님의 댓글의 댓글
지환 작성일아~!! 무슨 말씀하시는지 이해했습니다! 답변에 감사드립니다!