正在从Firestore Firebase检索数据



我正在开发一个库存管理应用程序,我试图从我的消防仓库数据库中检索数据,但我无法了解原因。我创建了一个适配器文件和数据文件,并将它们与主文件链接

主活动文件的我的代码

package com.example.inventorymanagment;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.firebase.firestore.DocumentChange;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.Query;
import java.util.ArrayList;

public class Measure extends AppCompatActivity {
RecyclerView recyclerView;
ArrayList<data> itemList;
adapter adapter;
FirebaseFirestore db;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_measure);

recyclerView= findViewById(R.id.recyclerview);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this));

db = FirebaseFirestore.getInstance();
itemList= new ArrayList<>();
adapter= new adapter(Measure.this,itemList);
recyclerView.setAdapter(adapter);
getdata();

}
@SuppressLint("NotifyDataSetChanged")
private void getdata() {
db.collection("Inventory").orderBy("Name", Query.Direction.ASCENDING)
.addSnapshotListener((value, error) -> {
if(error!=null){
Log.e("Firestore error",error.getMessage());
return;
}
for(DocumentChange dc : value.getDocumentChanges()){
if(dc.getType() == DocumentChange.Type.ADDED){
itemList.add(dc.getDocument().toObject(data.class));
}
adapter.notifyDataSetChanged();
}
});
}
}

适配器文件的代码

package com.example.inventorymanagment;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import  androidx.recyclerview.widget.RecyclerView;

import java.util.ArrayList;
public class adapter extends RecyclerView.Adapter<adapter.MyViewHolder>{

Context context;
ArrayList<data> itemList;
public  adapter(Context context, ArrayList<data>itemList)
{
this.context = context;
this.itemList = itemList;
}
@NonNull
@Override
public adapter.MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(context).inflate(R.layout.item,parent,false);
return new MyViewHolder(v);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
data data = itemList.get(position);
holder.Name.setText(data.Name);
holder.Quantity.setText(String.valueOf(data.Quantity));
}

@Override
public int getItemCount() {
return itemList.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder{
TextView Name, Quantity;

public MyViewHolder(@NonNull View itemView) {
super(itemView);
Name=itemView.findViewById(R.id.name);
Quantity=itemView.findViewById((R.id.quantity));
}
}
} 

我的数据文件代码

package com.example.inventorymanagment;
public class data {
String Name;
long Quantity;
public data(){}
public data(String name, long quantity) {
Name = name;
Quantity = quantity;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public long getQuantity() {
return Quantity;
}
public void setQuantity(long quantity) {
Quantity = quantity;
}
}

请帮我找到我的错误

In onBindViewHolder(@NonNull MyViewHolder holder, int position) {
data data = itemList.get(position);
holder.Name.setText(data.Name);
holder.Quantity.setText(String.valueOf(data.Quantity));

尝试设置data.getName((而不是data。名称

最新更新