Я не знаю, что не так с моим кодом, но я не могу получить желаемый результат. Либо данные не приходят, либо они не могут отображаться должным образом, и я не могу найти проблему в своем коде. нет установщика в файле модели базы данных, но я подключил адаптер
файл адаптера
public class BloodRequestAdapter extends RecyclerView.Adapter<BloodRequestAdapter.MyViewHolder> {
Context context;
ArrayList<BloodRequestList> bloodRequestList;
public BloodRequestAdapter(Context c, ArrayList<BloodRequestList> b){
context=c;
bloodRequestList=b;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
return new MyViewHolder(LayoutInflater.from(context).inflate(R.layout.user,viewGroup,false));
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {
myViewHolder.name.setText(bloodRequestList.get(i).getPatientName());
myViewHolder.bloodgroup.setText(bloodRequestList.get(i).getBloodGroup());
myViewHolder.quantity.setText(bloodRequestList.get(i).getQuantity());
myViewHolder.phone.setText(bloodRequestList.get(i).getPhone());
myViewHolder.hospitalname.setText(bloodRequestList.get(i).getHospitalName());
myViewHolder.hospitaladdress.setText(bloodRequestList.get(i).getHospitalAddress());
}
@Override
public int getItemCount() {
return bloodRequestList.size();
}
class MyViewHolder extends RecyclerView.ViewHolder{
TextView name,bloodgroup,quantity,phone,hospitalname,hospitaladdress;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
name=itemView.findViewById(R.id.textViewNameFeed);
bloodgroup=itemView.findViewById(R.id.textViewBloodtypeFeed);
quantity=itemView.findViewById(R.id.textViewquantityFeed);
phone=itemView.findViewById(R.id.textViewPhoneFeed);
hospitalname=itemView.findViewById(R.id.textViewHospitalNameFeed);
hospitaladdress=itemView.findViewById(R.id.textViewHospitalAddressFeed);
}
}
}
Это основной фрагмент, который имеет ссылку на базу данных и к которому подключен класс адаптера
public class FeedFragment extends Fragment {
View view;
DatabaseReference databaseReference;
RecyclerView recyclerView;
ArrayList<BloodRequestList> list;
BloodRequestAdapter adapter;
public FeedFragment() {
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = inflater.inflate(R.layout.feed_fragment, container, false);
databaseReference=FirebaseDatabase.getInstance().getReference().child("bloodRequest");
recyclerView=view.findViewById(R.id.myRecycler);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
list=new ArrayList<>();
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange (@NonNull DataSnapshot dataSnapshot){
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
BloodRequestList bloodRequestList = dataSnapshot1.getValue(BloodRequestList.class);
list.add(bloodRequestList);
}
adapter = new BloodRequestAdapter(getActivity(), list);
recyclerView.setAdapter(adapter);
}
@Override
public void onCancelled (@NonNull DatabaseError databaseError){
Toast.makeText(getActivity(), "somethings wrong", Toast.LENGTH_LONG).show();
}
});
return view;
}
}
файл модели
public class BloodRequestList {
String PatientName;
String BloodGroup;
String Quantity;
String Phone;
String HospitalName;
String HospitalAddress;
public BloodRequestList() {
}
public BloodRequestList(String patientName, String bloodGroup, String quantity, String phone, String hospitalName, String hospitalAddress) {
PatientName = patientName;
BloodGroup = bloodGroup;
Quantity = quantity;
Phone = phone;
HospitalName = hospitalName;
HospitalAddress = hospitalAddress;
}
public String getPatientName() {
return PatientName;
}
public String getBloodGroup() {
return BloodGroup;
}
public String getQuantity() {
return Quantity;
}
public String getPhone() {
return Phone;
}
public String getHospitalName() {
return HospitalName;
}
public String getHospitalAddress() {
return HospitalAddress;
}
}
база данных
{
"bloodRequest" :
{
"986153834" :
{
"bloodGroup" : "A+",
"hospitalAddress" : "sjvkqk",
"hospitalName" : "jshd",
"patientName" : "rjwk",
"phone" : "986153834",
"quantity" : "4"
}
}
}
Logcat
05-04 15:04:10.491 999-999/com.example.bloodbank E/RecyclerView: No adapter attached; skipping layout
05-04 15:04:10.511 999-999/com.example.bloodbank W/ClassMapper: No setter/field for quantity found on class com.example.bloodbank.BloodRequestList (fields/setters are case sensitive!)
05-04 15:04:10.511 999-999/com.example.bloodbank W/ClassMapper: No setter/field for phone found on class com.example.bloodbank.BloodRequestList (fields/setters are case sensitive!)
05-04 15:04:10.511 999-999/com.example.bloodbank W/ClassMapper: No setter/field for bloodGroup found on class com.example.bloodbank.BloodRequestList (fields/setters are case sensitive!)
05-04 15:04:10.511 999-999/com.example.bloodbank W/ClassMapper: No setter/field for hospitalName found on class com.example.bloodbank.BloodRequestList (fields/setters are case sensitive!)
05-04 15:04:10.511 999-999/com.example.bloodbank W/ClassMapper: No setter/field for hospitalAddress found on class com.example.bloodbank.BloodRequestList (fields/setters are case sensitive!)
05-04 15:04:10.511 999-999/com.example.bloodbank W/ClassMapper: No setter/field for patientName found on class com.example.bloodbank.BloodRequestList (fields/setters are case sensitive!)
05-04 15:04:10.511 999-999/com.example.bloodbank W/ClassMapper: No setter/field for quantity found on class com.example.bloodbank.BloodRequestList (fields/setters are case sensitive!)
05-04 15:04:10.511 999-999/com.example.bloodbank W/ClassMapper: No setter/field for phone found on class com.example.bloodbank.BloodRequestList (fields/setters are case sensitive!)
05-04 15:04:10.511 999-999/com.example.bloodbank W/ClassMapper: No setter/field for bloodGroup found on class com.example.bloodbank.BloodRequestList (fields/setters are case sensitive!)
05-04 15:04:10.511 999-999/com.example.bloodbank W/ClassMapper: No setter/field for hospitalName found on class com.example.bloodbank.BloodRequestList (fields/setters are case sensitive!)
05-04 15:04:10.511 999-999/com.example.bloodbank W/ClassMapper: No setter/field for hospitalAddress found on class com.example.bloodbank.BloodRequestList (fields/setters are case sensitive!)
05-04 15:04:10.511 999-999/com.example.bloodbank W/ClassMapper: No setter/field for patientName found on class com.example.bloodbank.BloodRequestList (fields/setters are case sensitive!)
05-04 15:04:10.516 999-999/com.example.bloodbank D/TextView: setTypeface with style : 0