class
ChapterActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_chapter)
...여기에 있던 코드는 책의 각 제목이면서, 동시에 리사이클러뷰의 각 항목들로써, 버튼이기도 합니다. 생략....
val recy23 = findViewById<RecyclerView>(R.id.recycler_view1)
val adapter = SampleAdapter5(dataSet1)
recy23.adapter = SampleAdapter5(dataSet1)
val recy24 = findViewById<RecyclerView>(R.id.recycler_view2)
val dataSet2 : ArrayList<String> = arrayListOf()
recy24.adapter = SampleAdapter6(dataSet2)
for
(i in
1
..
30
) { <---★ 이렇게 할 때에는 화면에 출력이 잘되는데
dataSet2.add(
"$i 장"
)
}
adapter.setOnItemClickListener(object : SampleAdapter5.OnItemClickListener {
override fun onItemClick(v: View?, position: Int) {
when (position) {
0
-> { ↓★버튼도 반응을 아예 안합니다.
for
(i in
1
..
50
) { <---★이렇게 하면 출력이 안됩니다...
dataSet2.add(
"$i 장"
)
}
}
}
}
})
class
SampleAdapter5(
private
val dataSet: ArrayList<String>) : RecyclerView.Adapter<SampleAdapter5.NumberViewHolder>() {
private
var mData: ArrayList<String>? =
null
init {
mData = dataSet
}
interface
OnItemClickListener {
fun onItemClick(v: View?, position: Int)
}
private
var mListener: OnItemClickListener? =
null
fun setOnItemClickListener(listener: OnItemClickListener?) {
mListener = listener
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): NumberViewHolder {
val layoutView: LinearLayout = LayoutInflater.from(parent.context).inflate(R.layout.activity_bible3927, parent,
false
) as LinearLayout
return
NumberViewHolder(layoutView)
}
override fun getItemCount(): Int = mData!!.size
override fun onBindViewHolder(holder: NumberViewHolder, position: Int) {
holder.number.text = mData!![position]
}
inner
class
NumberViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val number = itemView.findViewById(R.id.textView111) as TextView
init {
itemView.setOnClickListener(object : View.OnClickListener {
override fun onClick(v: View) {
val pos = adapterPosition
if
(pos != RecyclerView.NO_POSITION) {
if
(mListener !=
null
) {
mListener!!.onItemClick(v, pos)
}
}
}
})
}
}
}
class
SampleAdapter6(
private
val dataSet: ArrayList<String>) : RecyclerView.Adapter<SampleAdapter6.NumberViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): NumberViewHolder {
val layoutView: LinearLayout = LayoutInflater.from(parent.context).inflate(R.layout.activity_bible3927_1, parent,
false
) as LinearLayout
return
NumberViewHolder(layoutView)
}
override fun getItemCount(): Int = dataSet.size
override fun onBindViewHolder(holder: NumberViewHolder, position: Int) {
holder.number.text = dataSet[position]
}
inner
class
NumberViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val number = itemView.findViewById(R.id.textView222) as TextView
}
}
}
}