gpt4 book ai didi

java - 从 ArrayList 生成定义的集合

转载 作者:行者123 更新时间:2023-11-30 04:58:05 25 4
gpt4 key购买 nike

我正在我的 android 应用程序中从 firestore 获取数据,我已经成功获取数据并将其呈现在我的 View 中,但我希望通过将具有相似日期的数据合并在一起并从中创建一个数据集来删除重复数据。我的模型在下面提供。

public Daily(int mDal, int mDeposit, int mWithdrawed, int mReached, String mAuth, String mDate) {
this.mDal = mDal;
this.mDeposit = mDeposit;
this.mWithdrawed = mWithdrawed;
this.mReached = mReached;
this.mAuth = mAuth;
this.mDate = mDate;
}

这是用于从 firestore 检索的代码

    db.collection("payments")
.whereEqualTo("month", month1)
// .whereEqualTo("year", mYear)
.whereEqualTo("Paydate", mDay)
.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {

mProg.setVisibility(View.GONE);

if (!queryDocumentSnapshots.isEmpty()) {

List<DocumentSnapshot> list = queryDocumentSnapshots.getDocuments();

Toast.makeText(getActivity(), "payments collected!\n size is " + list.size(), Toast.LENGTH_SHORT).show();

for (DocumentSnapshot snapshot : list) {
CustomerPayment acc = snapshot.toObject(CustomerPayment.class);


accounts.add(acc);



}

adapter.notifyDataSetChanged();

} else {
Toast.makeText(getActivity(), "No item", Toast.LENGTH_SHORT).show();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {

mProg.setVisibility(View.GONE);

Log.e(TAG, "onFailure: " + e.getMessage());
}
});

最佳答案

因此,首先我想相信您已将日期作为一个属性包含在您的数据中,以便 res 返回每个条目的具体日期。如果您不确定是否这样做。

使用 firestore 的查询功能。:https://firebase.google.com/docs/firestore/query-data/queries .该查询将帮助您获得具有相同日期的所有条目。链接上给出了代码示例,非常简单。看一看。

firestoreDB.collection("payments")
.whereEqualTo("month", month1)
.whereEqualTo("Paydate",mDay)
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
List<Event> eventList = new ArrayList<>();
for(DocumentSnapshot doc : task.getResult()){
Event e = doc.toObject(Event.class);
eventList.add(e);
}
//do the toast

} else {
Log.d(TAG, "Error getting documents: ", task.getException());
}
}
});

使用 onComplete 而不是 onSucess,并让列表成为一个具有自己名称(例如 payments)的数组列表。

关于java - 从 ArrayList 生成定义的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58779235/

25 4 0