首先,需要在app的src/main目录下创建一个名为“assets”的文件夹,并将json数据文件放置在里面。
然后,加载json数据文件并将其解析为字符串。
val jsonString = application.assets.open("data.json").bufferedReader().use { it.readText() }
val gson = Gson()
val data: List
val sortedData = data.sortedWith(Comparator { o1, o2 -> o2.age - o1.age })
adapter.data = sortedData adapter.notifyDataSetChanged()
完整的示例代码:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val jsonString = application.assets.open("data.json").bufferedReader().use { it.readText() }
val gson = Gson()
val data: List = gson.fromJson(jsonString, Array::class.java).toList()
val sortedData = data.sortedWith(Comparator { o1, o2 -> o2.age - o1.age })
val adapter = MyAdapter(sortedData)
recyclerView.layoutManager = LinearLayoutManager(this)
recyclerView.adapter = adapter
}
data class MyData(val name: String, val age: Int, val gender: String)
class MyAdapter(var data: List) : RecyclerView.Adapter() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_layout, parent, false)
return MyViewHolder(view)
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val item = data[position]
holder.nameTextView.text = item.name
holder.ageTextView.text = item.age.toString()
holder.genderTextView.text = item.gender
}
override fun getItemCount
上一篇:Android-Kotlin - 当以编程方式设置时,TimePickerDialog显示的时间不正确。
下一篇:Android-kotlin-Jetpackcompose-Timerwhichworksevenwhenappiskilledanddeviceislocked