-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
해결됨
섹션5 리사이클러 뷰(recycler view) 만들어보기
23.11.05 13:39 작성 23.11.05 13:39 수정 조회수 236
0
섹션5 리사이클러 뷰(recycler view) 만들어보기 수강 중 강사님의 결과와 달라서 질문드립니다.
해당 강의 11:58까지 따라하면 강사님의 결과는
이렇게 a, b, c가 출력되던데
저는 이렇게 a만 출력됩니다.(10:14에서도 강사님의 화면에는 rv가 3개 나오던데 저는 마찬가지로 1개만 나와요.)
제가 뭘 잘못했는지 궁금합니다 ㅠㅠ
소스코드(Main.activity)
package com.example.rv_ex
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val items = mutableListOf<String>()
items.add("a")
items.add("b")
items.add("c")
val rv = findViewById<RecyclerView>(R.id.rv)
val rvAdapter = RVAdapter(items)
rv.adapter = rvAdapter
rv.layoutManager = LinearLayoutManager(this)
}
}
소스코드(RVAdapter)
package com.example.rv_ex
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
class RVAdapter(val items: MutableList<String>) : 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)
}
override fun onBindViewHolder(holder: RVAdapter.ViewHolder, position: Int) {
holder.bindItems(items[position])
}
//전체 리사이클러뷰의 개수
override fun getItemCount(): Int {
return items.size
}
inner class ViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) {
fun bindItems(item: String) {
val rv_text = itemView.findViewById<TextView>(R.id.rvItem)
rv_text.text = item
}
}
}
소스코드(activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_height="match_parent"
android:layout_width="match_parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
소스코드(rv_item.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/rvItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:text="rv"
android:textSize="20sp" />
</LinearLayout>
답변을 작성해보세요.
1
개복치개발자
지식공유자2023.11.05
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp">
<TextView
android:id="@+id/rvItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:text="rv"
android:textSize="20sp" />
</LinearLayout>
이렇게 rv_item을 변경해주시겠어요? 5번째 줄
android:layout_height="100dp"
가 변경되었습니다.
답변 1