Парсинг Json в CardView из RecyclerView

У меня есть следующий json { "tasks":[ { "id":"1","name": "task1", "date_start":"147600000","date_finish":"147610000","description" : "My task description"}, { "id":"2","name": "task2","date_start":"1622864643","date_finish":"1622871843","description":"My second task description"}, {"id":"3","name": "task3",date_start":"1628127843","date_finish":"1628131443","description" : "My third task description"} ] } Вопрос первый. Как должен быть сделан JSONObject?

Вопрос второй, у меня есть три cardView в RecyclerView, в TextView которых нужно передать значения из json с ключом "name". Внизу будет класс Activity с RecyclerView и RecyclerViewAdapter в нем же. ( generateFakeValues - функция, передающаяся в адаптер, работает на проверку работы адаптера, просто выводит несколько карточек, ее, понятное дело, потом не будет.) Последний вопрос, как вообще в целом парсить данные из json в activity? CalendarActivity

class CalendarActivity : AppCompatActivity() {
    private lateinit var binding: ActivityCalendarBinding
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityCalendarBinding.inflate(layoutInflater)
        setContentView(binding.root)
        binding.taskList.layoutManager = LinearLayoutManager(this)
        binding.taskList.adapter = Adapter(generateFakeValues())
    }

    private  fun generateFakeValues(): List<String>{
        val values = mutableListOf<String>()
        for(i in 1 .. 4){
            values.add("$i task ")
        }
        return values
    }

    class Adapter(private val values: List<String>) : RecyclerView.Adapter<Adapter.ViewHolder>() {


        override fun getItemCount() = values.size

        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
            val itemView =
                LayoutInflater.from(parent?.context).inflate(R.layout.list_item_view, parent, false)

            return ViewHolder(itemView)
        }

        override fun onBindViewHolder(holder: ViewHolder, position: Int) {
            holder.textView?.text = values[position]
        }

        class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {

            var textView: TextView? = null

            init {
                textView = itemView.findViewById(R.id.taskText)
            }
        }
    }
}

Ответы (0 шт):