空Firebase recyclerview

时间:2017-08-31 01:27:06

标签: android firebase-realtime-database android-recyclerview

我正在尝试在片段中执行Firebase Recyclerview,但是没有显示任何数据。此片段位于导航抽屉内。我已经在一个有效的活动中进行了recyclelerview,但是片段没有数据出现

我的片段类

public class fUniversidade extends android.support.v4.app.Fragment {
final static String DB_URL = "https://vbook-3c75d.firebaseio.com/recycler_data";
EditText nameEditText;
Button saveBtn;
ArrayList<mUniversidade> informations = new ArrayList<>();
RecyclerView rv;
ViewAdapter adapter;
Firebase fire;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.f_universidade, container, false);

    rv = (RecyclerView) rootView.findViewById(R.id.re_uni);
    rv.setLayoutManager(new LinearLayoutManager(getActivity()));
    rv.setHasFixedSize(true);
    Firebase.setAndroidContext(getContext());
    fire = new Firebase(DB_URL);

    this.refreshData();

    return rootView;

}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    //you can set the title for your toolbar here for different fragments different titles
    getActivity().setTitle("Universidade");
}

private void getUpdates(DataSnapshot dataSnapshot) {
    informations.clear();
    for(DataSnapshot ds: dataSnapshot.getChildren()){
        mUniversidade i = new mUniversidade();
        i.setNome(ds.getValue(mUniversidade.class).getNome());
        informations.add(i);
    }

    if(informations.size()>0){
        adapter = new ViewAdapter(getActivity().getApplicationContext(), informations);
        rv.setAdapter(adapter);
    }else{
        Toast.makeText(getActivity().getApplicationContext(), "Sem dados", Toast.LENGTH_SHORT);
    }
}

private void refreshData() {
    fire.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            getUpdates(dataSnapshot);

        }

        @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onChildRemoved(DataSnapshot dataSnapshot) {

        }

        @Override
        public void onChildMoved(DataSnapshot dataSnapshot, String s) {

        }

        @Override
        public void onCancelled(FirebaseError firebaseError) {

        }
    });
}

这是我的适配器

public class ViewAdapter extends RecyclerView.Adapter<MyViewHolder>{
Context c;
ArrayList<mUniversidade> information;


public ViewAdapter(Context c, ArrayList<mUniversidade> information) {
    this.c = c;
    this.information = information;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_universidade, parent, false);
    MyViewHolder holder = new MyViewHolder(v);
    return holder;
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
    String name = information.get(position).getNome();
    holder.nameTxt.setText(name);
}

@Override
public int getItemCount() {
    return information.size();
}}

有人可以告诉我哪里出错了吗?

0 个答案:

没有答案