Парсинг 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)
}
}
}
}