• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

게시글이 뜨지 않습니다.

21.01.26 21:20 작성 조회수 187

0

'상세화면 페이지 만들기' 강의를 공부하는 중입니다.

코드를 그대로 받아적었는데도,

앱을 실행하면 메인화면에 게시글이 뜨지 않습니다.

DetailViewFragment.kt 코드를 아래와 같이 작성하였습니다.

package com.example.instaclone.navigation

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.example.instaclone.R
import com.example.instaclone.navigation.model.ContentDTO
import com.google.firebase.firestore.FirebaseFirestore
import kotlinx.android.synthetic.main.fragment_detail.view.*
import kotlinx.android.synthetic.main.item_detail.view.*

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.detailviewfragment_recyclerview.adapter = DetailViewRecyclerViewAdapter()
        view.detailviewfragment_recyclerview.layoutManager = LinearLayoutManager(activity)
        return view
    }

    inner class DetailViewRecyclerViewAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
        var contentDTOs: ArrayList<ContentDTO> = arrayListOf()
        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(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)

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

        override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
            var viewholder = (holder as CustomViewHolder).itemView

            // User Id
            viewholder.detailviewitem_profile_textview.text = contentDTOs!![position].userId

            // Image
            Glide.with(holder.itemView.context).load(contentDTOs!![position].imageUrl).into(viewholder.detailviewitem_imageview_content)

            // Explain
            viewholder.detailviewitem_explain_textview.text = contentDTOs!![position].explain

            // likes
            viewholder.detailviewitem_favoritecounter_textview.text = "Likes "+ contentDTOs!![position].favoriteCount

            // ProfileImage
            Glide.with(holder.itemView.context).load(contentDTOs!![position].imageUrl).into(viewholder.detailviewitem_profile_image)
        }

    }
}

답변 5

·

답변을 작성해보세요.

1

모우지님의 프로필

모우지

질문자

2021.01.28

Cloud Firestore 말씀하시는거면, 안에 데이터 있습니다!

1

혹시 images collection 안에 데이터가 있는지요?  

0

xodid3531님의 프로필

xodid3531

2021.05.12

저도 안뜹니다...

0

Han Sungbin님의 프로필

Han Sungbin

2021.03.21

8강에 오타가 있습니다.

강의에 images 로 되어있는데 image로 고치면 게시물이 나오기는 합니다.

근데 다 정상으로 나오지는 않습니다.

inner class DetailViewRecyclerViewAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>(){
var contentDTO : ArrayList<ContentDTO> = arrayListOf()
var contentUidList : ArrayList<String> = arrayListOf()

init {
firestore?.collection("image")?.orderBy("timestamp")?.addSnapshotListener {querySnapshot , firebaseFirestoreExcetion ->
contentDTO.clear()
contentUidList.clear()

for(snapshot in querySnapshot!!.documents){
var item = snapshot.toObject(ContentDTO::class.java)
contentDTO.add(item!!)
contentUidList.add(snapshot.id)
}
notifyDataSetChanged()
}

}

0

김규현님의 프로필

김규현

2021.03.03

저도 동일한 현상이 나옵니다. 에러메시지는 한줄도 없는데 게시글이 뜨질 않네요.