작성
·
256
0
package com.nadeukcha.horse
import android.app.LauncherActivity
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import androidx.navigation.findNavController
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.nadeukcha.horse.databinding.ActivityMainBinding
class RacehorseDetailsFragment : Fragment() {
private val items = mutableListOf<RacehorseModel>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val view = inflater.inflate(R.layout.fragment_racehorse_details, container, false)
items.add(
RacehorseModel(
"https://www.horsepia.com/hp/pa/hh/PAHH2010/search.do#none",
"https://www.horsepia.com/hp/pa/ac/photoResizer.do?file=0047386&extend=l.jpg&width=312&height=191&type=3&hrsGbCd=00100&bfHrno=047386",
"기적의돌풍"
)
) // items.add
items.add(
RacehorseModel(
"https://www.horsepia.com/hp/pa/hh/PAHH2010/search.do#none",
"https://www.horsepia.com/hp/pa/ac/photoResizer.do?file=0047386&extend=l.jpg&width=312&height=191&type=3&hrsGbCd=00100&bfHrno=047386",
"기적의돌풍"
)
) // items.add
items.add(
RacehorseModel(
"https://www.horsepia.com/hp/pa/hh/PAHH2010/search.do#none",
"https://www.horsepia.com/hp/pa/ac/photoResizer.do?file=0047386&extend=l.jpg&width=312&height=191&type=3&hrsGbCd=00100&bfHrno=047386",
"기적의돌풍"
)
) // items.add
items.add(
RacehorseModel(
"https://www.horsepia.com/hp/pa/hh/PAHH2010/search.do#none",
"https://www.horsepia.com/hp/pa/ac/photoResizer.do?file=0047386&extend=l.jpg&width=312&height=191&type=3&hrsGbCd=00100&bfHrno=047386",
"기적의돌풍"
)
) // items.add
val rv = view.findViewById<RecyclerView>(R.id.racehorseRv)
val rvAdapter = RvAdapter(baseContext ,items)
rv.adapter = rvAdapter
// rv.layoutManager = LinearLayoutManager(context)
rv.layoutManager = GridLayoutManager(context, 2)
// 경기 내역 확인
view.findViewById<Button>(R.id.btn1).setOnClickListener {
it.findNavController().navigate(R.id.action_racehorseDetailsFragment_to_matchdetailsFragment)
}
// 기수 상제 정보
view.findViewById<Button>(R.id.btn3).setOnClickListener {
it.findNavController().navigate(R.id.action_racehorseDetailsFragment_to_riderDetailsFragment)
}
// 기록 정보
view.findViewById<Button>(R.id.btn4).setOnClickListener {
it.findNavController().navigate(R.id.action_racehorseDetailsFragment_to_recordInfoFragment)
}
return view
}
}
안녕하세요
Fragment 강의에서 봤던 동작이랑 이번에 RecyclerView 강의를 합쳐서 화면을 만들어보고있었습니다
그러던중 이번 강의 망고플레이트 앱 소개 및 레이아웃 - RecyclerView, Glide 강의의 24분 14초에 baseContext 추가하는 동작하를 하려고해는데 baseContext가 인식되지 않는 현상이있는데 따로 설정해줘야하는 부분이 있는건가요?
baseContext를 넣으면 이런 오류가 나옵니다
강의 내역과 조금 다른 질문인거같아 죄송합니다
답변 2
0
네 거기까지 진행하고 Import 했습니다 그래도 오류 나타납니다 아래는 RvAdpter 코드입니다
감사합니다..
package com.nadeukcha.horse
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.view.menu.MenuView.ItemView
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
class RvAdapter (val context : Context, val items : MutableList<RacehorseModel>) : RecyclerView.Adapter<RvAdapter.ViewHolder>(){
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RvAdapter.ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.rv_item, parent, false)
return ViewHolder(view)
}
// View에 내용 입력
override fun onBindViewHolder(holder: RvAdapter.ViewHolder, position: Int) {
holder.bindItems(items[position])
// 간격 설정
val layoutParams = holder.itemView.layoutParams
layoutParams.height = 200
holder.itemView.requestLayout()
}
override fun getItemCount(): Int {
return items.size
}
inner class ViewHolder(itemView : View) : RecyclerView.ViewHolder(itemView) {
fun bindItems(item : RacehorseModel) {
val rv_text = itemView.findViewById<TextView>(R.id.rvRaceHorse)
val rv_img = itemView.findViewById<ImageView>(R.id.RaceHorseList)
rv_text.text = item.horseName
Glide.with(context)
// val rv_text = itemView.findViewById<TextView>(R.id.rvRaceHorse)
// rv_text.text = item
}
}
}
0
24:26 초 부분에 RVAdapter 에 context를 추가해주는 부분이 있는데
이 부분을 하셔도 마찬가지인가요?
만약 그렇다면 RVAdapter 전체 코드도 공유해주시면 살펴보겠습니다.
코드를 자세히 다시 보니
강의에서는 Activity에서 context를 전달해줬는데
득재님이 작성하신 코드에서는 Fragment에서 baseContext를 사용하고 있으신 것 같습니다.
https://curryyou.tistory.com/386
위의 부분을 참고하셔서 코드를 변경하셔도 좋고, 강의와 같이 activity를 사용하셔도 좋습니다.
잘 안되시면 전체 코드를 깃허브/구글 드라이브를 통해서 공유해주시면 제가 수정해드리겠습니다.
코드 변경을 어떻게 시도하셨는지도 알려주세요~