RecycleView kotlin с araylist всегда size = 0 - PullRequest
0 голосов
/ 17 мая 2019

У меня есть RecycleView с котлином, который использует ArrayList. Вот код:

class TestProvider(val text: ArrayList<String> , val context:Context): RecyclerView.Adapter<TestProvider.holder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): holder {

       return holder(LayoutInflater.from(context).inflate(R.layout.testitem,parent,false))
    }

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

    override fun onBindViewHolder(holder: holder, position: Int) {

        holder.txtText.text=text[position]
    }


    class holder(item:View): RecyclerView.ViewHolder(item) {
        var txtText:TextView=item.findViewById(R.id.txtTest)
    }
}
      <?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:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/txtTest"/>

    </LinearLayout>
     var task1="abdef"
    internal var dateStart: Date? = null
        internal var dateEnd: Date? = null
        var taskProvider: Provider= Provider()
        var TaskList= ArrayList<String>()
        lateinit var taskAdapter: TestProvider
            TaskList.add(0,task1)
            TaskList.add(task1)
            TaskList.add(task1)
           taskAdapter = TestProvider(TaskList,this)
            rcvTest.addItemDecoration(dividerItemDecoration)
            rcvTest.layoutManager = linearLayoutManager
            rcvTest.setHasFixedSize(true)
            rcvTest.adapter = taskAdapter
           taskAdapter.notifyDataSetChanged()

текст в RecycleView всегда размер = 0.

1 Ответ

1 голос
/ 17 мая 2019

Я пытался перестроить ваше приложение и обнаружил, что ваш адаптер кажется неправильным. пожалуйста, измените объявление класса на:

class TestProvider(val text: ArrayList<String>, val context: Context) : RecyclerView.Adapter<TestProvider.holder>() {

также, ваш макет testitem должен иметь высоту wrap_content, так как в противном случае один элемент занял бы весь экран

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...