inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

하울의 안드로이드 인스타그램 클론 만들기

DetailViewFragment 화면 오류

262

방윤성

작성한 질문수 1

0

이런식으로 DetailViewFragment에서 이런식으로 코드를 짜주었는데 앱을 실행시키면 반영이 안되고 전에 설정해주었던 색만 뜹니다.. 무슨 오류일까요

ackage com.example.instargram_cloncoding.navigation

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.example.instargram_cloncoding.R
import com.example.instargram_cloncoding.navigation.DataModle.ContentDTO
import com.google.firebase.firestore.FirebaseFirestore
import com.google.firebase.firestore.QuerySnapshot


class DetailViewFragment : Fragment(){
//데이터베이스에 저장하기 위해
var firestore : FirebaseFirestore? = null


override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {

var view = LayoutInflater.from(activity).inflate(R.layout.fragment_detail,container,false)//프레그먼트 레이아웃 받아오는 부분
firestore = FirebaseFirestore.getInstance()

view.findViewById<RecyclerView>(R.id.DetailViewfFagment_Recyclerview).adapter = DetailViewRecyclerViewAdapter()
view.findViewById<RecyclerView>(R.id.DetailViewfFagment_Recyclerview).layoutManager = LinearLayoutManager(activity)


return view
}

//디테일뷰의 아이템과 디테일뷰 layout을 합치는 어뎁터
inner class DetailViewRecyclerViewAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>(){
var contentDTOs : ArrayList<ContentDTO> = arrayListOf()
var contentUIDList : ArrayList<String> = arrayListOf()
var querySnapshot : QuerySnapshot? = null

init {
//시간순으로 이미지들을 받아오고 만약 연결된 주소의 데이터가 바뀌면 바때마다 자동으로 업데이트해줌
firestore?.collection("images")?.orderBy("timestamp")
?.addSnapshotListener{ querySnapshot, firebaseFirestoreExcepthion ->
contentDTOs.clear()
contentUIDList.clear()
for (snapshot in querySnapshot!!.documents) {
var item = snapshot.toObject(ContentDTO::class.java)
contentDTOs.add(item!!)
contentUIDList.add(snapshot.id)
}
notifyDataSetChanged()//값 새로고침 자동으로!
}
}

//화면을 최초 로딩하여 만들어진 View가 없는 경우, xml파일을 inflate하여 ViewHolder를 생성한다.
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
var view = LayoutInflater.from(parent.context).inflate(R.layout.item_detail,parent,false)
return CustomViewHolder(view)
}

//굳이 클래스를 만들어서 리턴해주는이유는 메모리사용량때문에 그렇다. 딱히 사용하지 않아도 문제는 되지 않는다.
inner class CustomViewHolder(view: View): RecyclerView.ViewHolder(view)

//위의 onCreateViewHolder에서 만든 view와 실제 입력되는 각각의 데이터를 연결한다.
//서버에서 넘어온 데이터들을 연결!
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {

val viewholder = (holder as CustomViewHolder).itemView

viewholder.findViewById<TextView>(R.id.detailviewitem_profile_nameTextview).text = contentDTOs[position].userId

//Image
Glide.with(holder.itemView.context).load(contentDTOs[position].imageUrl).into(viewholder.findViewById(R.id.detailviewitem_imageview_content))
//Explain of content
viewholder.findViewById<TextView>(R.id.detailviewitem_explan_textview).text = contentDTOs[position].explain

//likes
viewholder.findViewById<TextView>(R.id.detailviewitem_favoriteconter_textview).text = "Likes" + contentDTOs!![position].favoriteCount

//Profile Image
Glide.with(holder.itemView.context).load(contentDTOs[position].imageUrl).into(viewholder.findViewById(R.id.detailviewitem_profile_image))
//
// //User Id
// var profile = binding.detailviewitemProfileNameTextview
//
// //User Id 유저 이름
// profile.text = contentDTOs!![position].userId
//
// //Image 사진
// Glide.with(holder.itemView.context).load(contentDTOs!![position].imageUrl).into(binding.detailviewitemImageviewContent)
//
// //Explan 유저글
// binding.detailviewitemExplanTextview.text = contentDTOs!![position].explain
//
// //Likes 좋아요 개수 카운트
// binding.detailviewitemFavoriteconterTextview.text = "Liks" + contentDTOs!![position].favoriteCount
//
// //ProfileImage 유저 프로파일 이미지 즉, 프로필사진
// Glide.with(holder.itemView.context).load(contentDTOs!![position].imageUrl).into(binding.detailviewitemProfileImage)
}
//RecyclerView로 만들어지는 item의 총 개수를 반환한다.
override fun getItemCount(): Int {
return contentDTOs.size
}
}

}

kotlin android 클론코딩

답변 0

CloudFireStore에 데이터가 들어가지 않아요

0

74

1

firebase storage에서 putfile해도 이미지 업로드가 안되요..

0

94

1

1강 AndroidManifest.xml 코드 오류

0

465

1

도와주세요 ㅠㅠ

0

403

1

게시물이 뜨지 않습니다.(detail_veiw)

0

382

0

NavigationBarView 사용법 변경으로 인한 네비게이션 바 애니메이션 적용법

0

509

1

안드로이드 11 이상부터 startActivityForResult 지원 안하므로 다른 방법 이용

0

360

1

bottom_navigation 오류

0

425

1

게시물을 최신게시물순으로 하고싶은데 어떻게 하면 될까요..?ㅠ

0

269

1

오류..? 에러..?

0

472

0

페이스북 로그인

0

355

0

댓글 activity에서 mainActivity의 userFragment 이동 방법관련..

0

366

1

댓글activity에서 userId를 클릭했을 때

0

294

1

파이어베이스 연결에서 막힙니다,,

0

399

1

파이어베이스 이미지url Glide로 불러올 때 에러

1

553

1

- 혹시 사진 업로드 여러장 되게 할수 있는 방법이 있을까요??

0

419

1

화면전환시 색깔이 안나오고 흰바탕입니다

0

259

1

Facebook공식 문서에서 제공해주는 최신 SDK 오류

1

282

0

startActivityForResult와 onActivityResult는 이제 안드로이드 스튜디오에서 못쓰게 하는데 어떻게 수정 해야 할까요?

0

389

1

google 계정 선택창이 아예 뜨지 않습니다.

0

298

1

로그인 시 에러

0

311

0

3강에서 startActivityForResult 사용불가 문제

0

444

1

인스타그램 자바언어로 하는 클론코딩은 없을까요?

0

1690

1

mainfest 오류

1

239

0