[英]I want to get data from firebase to inside fragment with recycler view
I'm trying to make a project for myself. 我正在为自己做一个项目。 I got stuck at some point. 我在某个时候被卡住了。
I want to get data from firebase to inside fragment with recycler view. 我想通过回收者视图将数据从Firebase获取到内部片段。
I really need your help. 我真的需要你的帮助。
I tried a few ways. 我尝试了几种方法。 But i couldn't it. 但是我做不到。 I create recyclerviewconfig and firebasehelper class but it didn't work. 我创建了recyclerviewconfig和firebasehelper类,但是没有用。 Today i tried firebaseUI. 今天,我尝试了firebaseUI。 but again didn't work. 但再次没有用。
public class Kumas extends Fragment {
private View KumasFragmet;
private RecyclerView KumasListesi;
private DatabaseReference MaliyetKumasListesiReference;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
KumasFragmet= inflater.inflate(R.layout.fragment_kumas, container, false);
MaliyetKumasListesiReference = FirebaseDatabase.getInstance().getReference().child("test carisi").child("modeller").child("1").child("maliyet").child("kumas");
KumasListesi = (RecyclerView) KumasFragmet.findViewById(R.id.maliyet_kumaş_rw);
KumasListesi.setLayoutManager(new LinearLayoutManager(getContext()));
FloatingActionButton flt = (FloatingActionButton) KumasFragmet.findViewById(R.id.kumas_ekle_floating);
flt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent in = new Intent(getActivity(),KumasEkle.class);
startActivity(in);
}
});
return KumasFragmet;
}
@Override
public void onStart() {
super.onStart();
FirebaseRecyclerOptions<KumasTanim> options = new FirebaseRecyclerOptions.Builder<KumasTanim>()
.setQuery(MaliyetKumasListesiReference,KumasTanim.class)
.build();
FirebaseRecyclerAdapter<KumasTanim,MaliyetKumasListesiViewHolder> adapter =
new FirebaseRecyclerAdapter<KumasTanim, MaliyetKumasListesiViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull final MaliyetKumasListesiViewHolder maliyetKumasListesiViewHolder, int i, @NonNull KumasTanim kumasTanim) {
maliyetKumasListesiViewHolder.kumas_adi.setText(kumasTanim.getKumas_adi());
maliyetKumasListesiViewHolder.sarfiyat.setText(kumasTanim.getSarfiyat());
maliyetKumasListesiViewHolder.fiyat.setText(kumasTanim.getFiyat());
}
@NonNull
@Override
public MaliyetKumasListesiViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.maliyet_kumas_item,parent,false);
MaliyetKumasListesiViewHolder maliyetKumasListesiViewHolder = new MaliyetKumasListesiViewHolder(view);
return maliyetKumasListesiViewHolder;
}
};
KumasListesi.setAdapter(adapter);
adapter.startListening();
}
public static class MaliyetKumasListesiViewHolder extends RecyclerView.ViewHolder {
TextView kumas_adi,sarfiyat,fiyat;
public MaliyetKumasListesiViewHolder(@NonNull View itemView) {
super(itemView);
kumas_adi = itemView.findViewById(R.id.item_kumas_adi_tw);
sarfiyat = itemView.findViewById(R.id.item_sarfiyat_tw);
fiyat = itemView.findViewById(R.id.item_fiyat_tw);
}
}
}
it doesn't give any errors. 它不会给出任何错误。
Kindly add event Listener , if you are not getting the data you then you will might get database error.Kidnly check that error first.To first the Problem. 请添加事件侦听器,如果没有获取数据,则可能会出现数据库错误,请先检查该错误。
MaliyetKumasListesiReference .addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Post post = dataSnapshot.getValue(Post.class);
System.out.println(post);
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
You need to add eventlistener
to retrieve the data. 您需要添加eventlistener
来检索数据。 So try the below method and hope it will work. 因此,请尝试以下方法,并希望它会起作用。
@Override
public void onStart() {
super.onStart();
FirebaseRecyclerOptions<KumasTanim> options = new FirebaseRecyclerOptions.Builder<KumasTanim>()
.setQuery(MaliyetKumasListesiReference,KumasTanim.class)
.build();
FirebaseRecyclerAdapter<KumasTanim,MaliyetKumasListesiViewHolder> adapter =
new FirebaseRecyclerAdapter<KumasTanim, MaliyetKumasListesiViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull final MaliyetKumasListesiViewHolder maliyetKumasListesiViewHolder, int i, @NonNull KumasTanim kumasTanim) {
MaliyetKumasListesiReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.getChildrenCount()!=0){
maliyetKumasListesiViewHolder.kumas_adi.setText(kumasTanim.getKumas_adi());
maliyetKumasListesiViewHolder.sarfiyat.setText(kumasTanim.getSarfiyat());
maliyetKumasListesiViewHolder.fiyat.setText(kumasTanim.getFiyat());
}else {
//if empty do something
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
@NonNull
@Override
public MaliyetKumasListesiViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.maliyet_kumas_item,parent,false);
MaliyetKumasListesiViewHolder maliyetKumasListesiViewHolder = new MaliyetKumasListesiViewHolder(view);
return maliyetKumasListesiViewHolder;
}
};
KumasListesi.setAdapter(adapter);
adapter.startListening();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.