인프런 커뮤니티 질문&답변

김소영님의 프로필 이미지
김소영

작성한 질문수

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

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

해결된 질문

작성

·

294

0

안녕하세요

게시물 업로드하기 부분을 기반으로 fragment 명 정도만 살짝씩 수정하며 따라하다가 오류가 생겨 문의 남깁니다.

 

정확히는 코드 자체에 오류는 없는데 홈화면에 게시물이 뜨지 않습니다.

 

파이어베이스에 데이터들이 업로드 되어 있는 것을 확인하였습니다.

xml id등도 동일하고요

 

코드 자체를 잘못 타이핑했는지,

혹은 안드로이드 스튜디오 등의 업데이트가 진행되면서 오류가 생긴 건지 궁금합니다.

 

-xml view id를 인식하지 못해 findViewByID로 인식하도록 코드를 수정했습니다.

package com.example.guru26

import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.firebase.firestore.FirebaseFirestore
import java.util.*
import com.bumptech.glide.Glide



class HomeFragment : Fragment() {

    var firestore : FirebaseFirestore? = null

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View?
    {
        // Inflate the layout for this fragment
        var view = LayoutInflater.from(activity).inflate(R.layout.fragment_home, container, false)
        firestore = FirebaseFirestore.getInstance()

        view.findViewById<RecyclerView>(R.id.rv_poster).adapter = PosterAdapter()
        view.findViewById<RecyclerView>(R.id.rv_poster).layoutManager = LinearLayoutManager(activity)

        return view
    }

    inner class PosterAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
        var contentDTOs : ArrayList<ContentDTO > = arrayListOf()
        private var contentUidList :ArrayList<String> = arrayListOf()

        init {
            firestore?.collection("images")?.orderBy("timestamp")?.addSnapshotListener { querySnapshot, FirebaseFirestoreException ->
                contentDTOs.clear()
                contentUidList.clear()
                for(snapshot in querySnapshot!!.documents){
                    var item = snapshot. toObject(ContentDTO::class.java)
                    contentDTOs.add(item!!)
                    contentUidList.add(snapshot.id)
                }
                notifyDataSetChanged()
            }
        }

        override fun onCreateViewHolder(p0: ViewGroup, p1: Int): RecyclerView.ViewHolder {
            val view = LayoutInflater.from(p0.context).inflate(R.layout.list_item, p0, false)
            return CustomViewHolder(view)
        }

        inner class CustomViewHolder (view : View) : RecyclerView.ViewHolder(view){}


        override fun getItemCount(): Int {
            return contentDTOs.size
        }

        override fun onBindViewHolder(p0: RecyclerView.ViewHolder, p1: Int) {

            var viewholder = (p0 as CustomViewHolder).itemView

            //UserID
            viewholder.findViewById<TextView>(R.id.tv_name).text= contentDTOs!![p1].exhName
            viewholder.findViewById<TextView>(R.id.tv_start_date).text= contentDTOs!![p1].exhStartDay
            viewholder.findViewById<TextView>(R.id.tv_end_date).text= contentDTOs!![p1].exhEndDay
            viewholder.findViewById<TextView>(R.id.tv_place).text= contentDTOs!![p1].exhPlace

            //Image
            Glide.with(p0.itemView.context).load(contentDTOs!![p1].imageUrl).into(viewholder.findViewById(R.id.iv_poster))

        }
    }
}

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
김소영님의 프로필 이미지
김소영

작성한 질문수

질문하기