![enter image description here](https://i.stack.imgur.com/ORa79.png)
Я использовал базу данных firebase и сохраненные данные, как показано ниже.
Но в методе OnDataChange метод snapshot.getValue () возвращает нулевые значения моему классу объект, как показано в снимке отладки, указанном ниже:
![enter image description here](https://i.stack.imgur.com/4ZwTN.png)
Код указан ниже:
Pani. java
public class Pani {
private String pid, pname, ptype, pfunc;
private Pani()
{
}
public Pani(String pid, String pname, String ptype, String pfunc) {
this.pid = pid;
this.pname = pname;
this.ptype = ptype;
this.pfunc = pfunc;
}
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public String getPtype() {
return ptype;
}
public void setPtype(String ptype) {
this.ptype = ptype;
}
public String getPfunc() {
return pfunc;
}
public void setPfunc(String pfunc) {
this.pfunc = pfunc;
}
}
MyAdapter. java
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private List<Pani> listData;
public MyAdapter(List<Pani> listData){
this.listData = listData;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater= LayoutInflater.from(parent.getContext());
View view=inflater.inflate(R.layout.search_list_layout,parent,false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.pani_name.setText(listData.get(position).getPname());
holder.pani_function.setText(listData.get(position).getPfunc());
}
@Override
public int getItemCount() {
return listData.size();
}
class MyViewHolder extends RecyclerView.ViewHolder {
TextView pani_name,pani_function;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
pani_name = itemView.findViewById(R.id.pani_name);
pani_function=itemView.findViewById(R.id.pani_function);
}
}
}
домашняя деятельность. java
public class homeActivity extends AppCompatActivity {
private List<Pani> listData;
private RecyclerView rv;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
rv = (RecyclerView) findViewById(R.id.pani_search_list);
rv.setHasFixedSize(true);
rv.setLayoutManager(new LinearLayoutManager(this));
listData = new ArrayList<>();
final DatabaseReference nm = FirebaseDatabase.getInstance().getReference().child("Pani");
nm.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
for (DataSnapshot npsnapshot : dataSnapshot.getChildren()) {
Pani l = npsnapshot.getValue(Pani.class);
listData.add(l);
}
adapter = new MyAdapter(listData);
rv.setAdapter(adapter);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}