Android Firebase - не получить все ключи в виде списка, что мне делать? - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу получить список всех ключей в программе Recycleler, перепробовал все, но ничего не получил, я не хочу атрибуты ключей. Как только я получу список всех ключей в представлении реселлера, я сделаю его кликабельным, а затем я хочу, чтобы атрибуты этого ключа нажимались, помогите мне в этом мой последний годовой проект.

Я не использовал метод setFname of мой класс POJO, потому что я поместил свои данные вручную в Firebase.

enter image description here

enter image description here

package com.fyp.phasse_4;

import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;


public class foodBasketFragment extends Fragment {

private ArrayList<FoodsModel> foodsModels;
private DatabaseReference foodRef;
private FirebaseAuth mAuth;
private String currentUserID;
RecyclerView recyclerView;
String p;


public foodBasketFragment() {
}

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable final ViewGroup container,         
@Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_food_basket, container, false);
    foodRef = FirebaseDatabase.getInstance().getReference().child("FoodData");
    mAuth = FirebaseAuth.getInstance();
    FoodsModel model = new FoodsModel()
    recyclerView = view.findViewById(R.id.recyclerView);
    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
    currentUserID = mAuth.getCurrentUser().getUid();
    foodsModels = new ArrayList<>();
    return view;
}

@Override
public void onStart() {
    super.onStart();
    FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder<FoodsModel>()
            .setQuery(foodRef, FoodsModel.class)
            .build();

    FirebaseRecyclerAdapter<FoodsModel, myViewHolder> adapter = new     
FirebaseRecyclerAdapter<FoodsModel, myViewHolder>(options) {
        @Override
        protected void onBindViewHolder(@NonNull final myViewHolder holder, final int position, 
@NonNull final FoodsModel model) {

            foodRef.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
                    }
                    holder.name.setText();
                }

                @Override
                public void onCancelled(@NonNull DatabaseError databaseError) {

                }
            });

        }

        @NonNull
        @Override
        public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.foods_list, parent, 
false);
            return new myViewHolder(view);
        }
    };
    recyclerView.setAdapter(adapter);
    adapter.startListening();


}
public static class myViewHolder extends RecyclerView.ViewHolder
{
    TextView name;
    public myViewHolder(@NonNull View itemView) {
        super(itemView);

        name = itemView.findViewById(R.id.txtName);
    }
}

}

Это мой класс POJO,

package com.fyp.phasse_4;
public class FoodsModel {
public String fName;

public FoodsModel() {
}
public FoodsModel(String fName) {
    this.fName = fName;
}

public String getfName() {
    return fName;
}

public void setfName(String fName) {
    this.fName = fName;
}
}

1 Ответ

0 голосов
/ 14 апреля 2020
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren()) {
     String key = dataSnapshot1.getKey();
     System.out.println(key);
}
...