[英]Sorting retrieved data from realtime database in row and columns and implement search view so every row can be searched
this my Excel class
public class Excel {
public int Age;
public String Country;
public String Date;
public String First_Name;
public String Gender;
public int Id;
public String Last_Name;
public String status;
public Excel() {
}
@PropertyName("Age")
public int getAge() {
return Age;
}
@PropertyName("Country")
public String getCountry() {
return Country;
}
@PropertyName("Date")
public String getDate() {
return Date;
}
@PropertyName("First_Name")
public String getFirst_Name() {
return First_Name;
}
@PropertyName("Gender")
public String getGender() {
return Gender;
}
@PropertyName("Id")
public int getId() {
return Id;
}
@PropertyName("Last_Name")
public String getLast_Name() {
return Last_Name;
}
@PropertyName("status")
public String getStatus() {
return status;
}
@Override
public String toString() {
return "Excel{" +
"Age=" + Age + "" + ", Country='" + Country + '\'' +
", Date='" + Date + '\'' +
", First_Name='" + First_Name + '\'' +
", Gender='" + Gender + '\'' +
", Id=" + Id +
", Last_Name='" + Last_Name + '\'' +
", status='" + status + '\'' +
'}';
}
}
this my Main Activity class
class MainActivity : AppCompatActivity() {
private var coursesLV: ListView? = null
lateinit var coursesArrayList: ArrayList<Excel>
lateinit var reference: DatabaseReference
lateinit var Img_set:ImageView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Img_set = findViewById(R.id.Img_set)
Img_set.setOnClickListener {
intent= Intent(this,Admin_Info::class.java)
startActivity(intent)
}
coursesLV = findViewById(R.id.idLVCourses)
coursesArrayList = ArrayList()
getdata()
}
private fun getdata() {
val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, coursesArrayList)
reference = FirebaseDatabase.getInstance().getReference("Excel")
reference.addChildEventListener(object : ChildEventListener {
override fun onChildAdded(snapshot: DataSnapshot, previousChildName: String?) {
for (ignored in snapshot.children) {
val currentUser = snapshot.getValue(Excel::class.java)!!
coursesArrayList.add(currentUser)
adapter.notifyDataSetChanged()
}
}
override fun onChildChanged(snapshot: DataSnapshot, previousChildName: String?) {
adapter.notifyDataSetChanged()
}
override fun onChildRemoved(snapshot: DataSnapshot) {
}
override fun onChildMoved(snapshot: DataSnapshot, previousChildName: String?) {}
override fun onCancelled(error: DatabaseError) {}
})
coursesLV!!.adapter = adapter
}
}
this is my database structure as json file
{
"Excel": [
{
"Age": 32,
"Country": "United States",
"Date": "15/10/2017",
"First_Name": "Dulce",
"Gender": "Female",
"Id": 1562,
"Last_Name": "Abril",
"status": "open "
},
{
"Age": 25,
"Country": "Great Britain",
"Date": "16/08/2016",
"First_Name": "Mara",
"Gender": "Female",
"Id": 1582,
"Last_Name": "Hashimoto",
"status": "close"
},
{
"Age": 36,
"Country": "France",
"Date": "21/05/2015",
"First_Name": "Philip",
"Gender": "Male",
"Id": 2587,
"Last_Name": "Gent",
"status": "open "
},
{
"Age": 25,
"Country": "United States",
"Date": "15/10/2017",
"First_Name": "Kathleen",
"Gender": "Female",
"Id": 3549,
"Last_Name": "Hanner",
"status": "close"
},
{
"Age": 58,
"Country": "United States",
"Date": "16/08/2016",
"First_Name": "Nereida",
"Gender": "Female",
"Id": 2468,
"Last_Name": "Magwood",
"status": "open "
},
{
"Age": 24,
"Country": "United States",
"Date": "21/05/2015",
"First_Name": "Gaston",
"Gender": "Male",
"Id": 2554,
"Last_Name": "Brumm",
"status": "close"
},
{
"Age": 56,
"Country": "Great Britain",
"Date": "15/10/2017",
"First_Name": "Etta",
"Gender": "Female",
"Id": 3598,
"Last_Name": "Hurn",
"status": "open "
},
{
"Age": 27,
"Country": "United States",
"Date": "16/08/2016",
"First_Name": "Earlean",
"Gender": "Female",
"Id": 2456,
"Last_Name": "Melgar",
"status": "open "
},
{
"Age": 40,
"Country": "United States",
"Date": "21/05/2015",
"First_Name": "Vincenza",
"Gender": "Female",
"Id": 6548,
"Last_Name": "Weiland",
"status": "open "
}
]
}
我從實時數據庫中檢索了數據,它來自 json 但我想按行和列對其進行排序,你能幫我將這些數據排序為我在年齡行和列中得到年齡的方式等等,我想實現搜索視圖這樣我就可以按行和列搜索數據,例如 excel 表,這可能嗎?
當您使用 ChildEventListener 時,無需遍歷子項。 你應該簡單地使用:
override fun onChildAdded(snapshot: DataSnapshot, previousChildName: String?) {
val currentUser = snapshot.getValue(Excel::class.java)!!
coursesArrayList.add(currentUser)
adapter.notifyDataSetChanged()
}
除此之外,不要忘記處理錯誤:
override fun onCancelled(error: DatabaseError) {
error.message?.let {
Log.d("TAG", it)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.