如何基于boolean参数recyclerView Item只显示真实的items?
How to recyclerView Item on the basis of boolean parameter and only display true items?
我有一个问题,如何根据布尔参数对 Arraylist 进行排序并且只显示真实的项目。 datasource.sortByDescending { it.favorite }
在这里我得到排序数组,其中我在顶部有真实项目,在底部有虚假项目。我要的是只显示真项不显示假项
我希望我的问题很清楚。
完整代码如下:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
rvlist.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
val datasource = getDataSource()
val beneficiaryAdapter = BeneficiaryAdapter(datasource)
rvlist.adapter = beneficiaryAdapter
btnAll.setOnClickListener{
btnFavorite.setBackgroundColor(Color.BLUE)
btnAll.setBackgroundColor(Color.GREEN)
btnSortByFrequency.setBackgroundColor(Color.BLUE)
btnSortByName.setBackgroundColor(Color.BLUE)
rvlist.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
val datasource = getDataSource()
val beneficiaryAdapter = BeneficiaryAdapter(datasource)
rvlist.adapter = beneficiaryAdapter
}
btnFavorite.setOnClickListener{
btnFavorite.setBackgroundColor(Color.GREEN)
btnAll.setBackgroundColor(Color.BLUE)
btnSortByFrequency.setBackgroundColor(Color.BLUE)
btnSortByName.setBackgroundColor(Color.BLUE)
rvlist.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
val datasource = getDataSource()
datasource.sortByDescending { it.favorite }
val beneficiaryAdapter = BeneficiaryAdapter(datasource)
rvlist.adapter = beneficiaryAdapter
}
btnSortByFrequency.setOnClickListener{
btnFavorite.setBackgroundColor(Color.BLUE)
btnAll.setBackgroundColor(Color.BLUE)
btnSortByFrequency.setBackgroundColor(Color.GREEN)
btnSortByName.setBackgroundColor(Color.BLUE)
rvlist.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
val datasource = getDataSource()
datasource.sortByDescending { it.frequency }
val beneficiaryAdapter = BeneficiaryAdapter(datasource)
rvlist.adapter = beneficiaryAdapter
}
btnSortByName.setOnClickListener{
btnFavorite.setBackgroundColor(Color.BLUE)
btnAll.setBackgroundColor(Color.BLUE)
btnSortByFrequency.setBackgroundColor(Color.BLUE)
btnSortByName.setBackgroundColor(Color.GREEN)
rvlist.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
val datasource = getDataSource()
datasource.sortBy { it.name }
val beneficiaryAdapter = BeneficiaryAdapter(datasource)
rvlist.adapter = beneficiaryAdapter
}
}
private fun getDataSource():ArrayList<beneficiary>{
val list = ArrayList<beneficiary>()
list.add(beneficiary(1, "Adbul Malik", "12346564555124", "Meezan",true,5))
list.add(beneficiary(2, "Naeem Ali", "6454886614281", "HBL",true,5))
list.add(beneficiary(3, "Ali Raza", "456467864568465", "Soneri",false,4))
list.add(beneficiary(4, "Talha Abid", "46873456465464564", "Allied",false,1))
list.add(beneficiary(5, "Hassan Ali", "16456464564646", "Meezan",false,5))
list.add(beneficiary(6, "Shahid Khan", "78946756195845648", "HBL",true,3))
list.add(beneficiary(7, "Umer Riaz", "79464567754379", "Soneri",false,6))
list.add(beneficiary(8, "Zeeshan Farooq", "797536187897465", "Allied",false,1))
list.add(beneficiary(9, "Qasim Ali", "551988763478565746765", "MCB",false,1))
list.add(beneficiary(10, "Farooq Haider", "81786523478465010", "Punjab",false,2))
return list
}
}
您基本上可以按如下方式过滤数组列表
getDataSource().filter { it.favorite }
您可以按如下方式更新您的代码:
btnFavorite.setOnClickListener{
btnFavorite.setBackgroundColor(Color.GREEN)
btnAll.setBackgroundColor(Color.BLUE)
btnSortByFrequency.setBackgroundColor(Color.BLUE)
btnSortByName.setBackgroundColor(Color.BLUE)
rvlist.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
val beneficiaryAdapter = BeneficiaryAdapter(getDataSource().filter { it.favorite })
rvlist.adapter = beneficiaryAdapter
}
这不会在您尝试更改后更新您的 dataSource
变量。你必须将它放入新变量或直接在你要使用的地方使用它
val datasource = getDataSource()
datasource.sortByDescending { it.frequency }
我有一个问题,如何根据布尔参数对 Arraylist 进行排序并且只显示真实的项目。 datasource.sortByDescending { it.favorite }
在这里我得到排序数组,其中我在顶部有真实项目,在底部有虚假项目。我要的是只显示真项不显示假项
我希望我的问题很清楚。
完整代码如下:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
rvlist.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
val datasource = getDataSource()
val beneficiaryAdapter = BeneficiaryAdapter(datasource)
rvlist.adapter = beneficiaryAdapter
btnAll.setOnClickListener{
btnFavorite.setBackgroundColor(Color.BLUE)
btnAll.setBackgroundColor(Color.GREEN)
btnSortByFrequency.setBackgroundColor(Color.BLUE)
btnSortByName.setBackgroundColor(Color.BLUE)
rvlist.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
val datasource = getDataSource()
val beneficiaryAdapter = BeneficiaryAdapter(datasource)
rvlist.adapter = beneficiaryAdapter
}
btnFavorite.setOnClickListener{
btnFavorite.setBackgroundColor(Color.GREEN)
btnAll.setBackgroundColor(Color.BLUE)
btnSortByFrequency.setBackgroundColor(Color.BLUE)
btnSortByName.setBackgroundColor(Color.BLUE)
rvlist.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
val datasource = getDataSource()
datasource.sortByDescending { it.favorite }
val beneficiaryAdapter = BeneficiaryAdapter(datasource)
rvlist.adapter = beneficiaryAdapter
}
btnSortByFrequency.setOnClickListener{
btnFavorite.setBackgroundColor(Color.BLUE)
btnAll.setBackgroundColor(Color.BLUE)
btnSortByFrequency.setBackgroundColor(Color.GREEN)
btnSortByName.setBackgroundColor(Color.BLUE)
rvlist.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
val datasource = getDataSource()
datasource.sortByDescending { it.frequency }
val beneficiaryAdapter = BeneficiaryAdapter(datasource)
rvlist.adapter = beneficiaryAdapter
}
btnSortByName.setOnClickListener{
btnFavorite.setBackgroundColor(Color.BLUE)
btnAll.setBackgroundColor(Color.BLUE)
btnSortByFrequency.setBackgroundColor(Color.BLUE)
btnSortByName.setBackgroundColor(Color.GREEN)
rvlist.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
val datasource = getDataSource()
datasource.sortBy { it.name }
val beneficiaryAdapter = BeneficiaryAdapter(datasource)
rvlist.adapter = beneficiaryAdapter
}
}
private fun getDataSource():ArrayList<beneficiary>{
val list = ArrayList<beneficiary>()
list.add(beneficiary(1, "Adbul Malik", "12346564555124", "Meezan",true,5))
list.add(beneficiary(2, "Naeem Ali", "6454886614281", "HBL",true,5))
list.add(beneficiary(3, "Ali Raza", "456467864568465", "Soneri",false,4))
list.add(beneficiary(4, "Talha Abid", "46873456465464564", "Allied",false,1))
list.add(beneficiary(5, "Hassan Ali", "16456464564646", "Meezan",false,5))
list.add(beneficiary(6, "Shahid Khan", "78946756195845648", "HBL",true,3))
list.add(beneficiary(7, "Umer Riaz", "79464567754379", "Soneri",false,6))
list.add(beneficiary(8, "Zeeshan Farooq", "797536187897465", "Allied",false,1))
list.add(beneficiary(9, "Qasim Ali", "551988763478565746765", "MCB",false,1))
list.add(beneficiary(10, "Farooq Haider", "81786523478465010", "Punjab",false,2))
return list
}
}
您基本上可以按如下方式过滤数组列表
getDataSource().filter { it.favorite }
您可以按如下方式更新您的代码:
btnFavorite.setOnClickListener{
btnFavorite.setBackgroundColor(Color.GREEN)
btnAll.setBackgroundColor(Color.BLUE)
btnSortByFrequency.setBackgroundColor(Color.BLUE)
btnSortByName.setBackgroundColor(Color.BLUE)
rvlist.layoutManager = LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false)
val beneficiaryAdapter = BeneficiaryAdapter(getDataSource().filter { it.favorite })
rvlist.adapter = beneficiaryAdapter
}
这不会在您尝试更改后更新您的 dataSource
变量。你必须将它放入新变量或直接在你要使用的地方使用它
val datasource = getDataSource()
datasource.sortByDescending { it.frequency }