2017-02-04 3 views
0

Я создал представление табуляции в действии. Теперь я хочу отображать элементы списка внутри каждой вкладки, которая должна быть извлечена из Firebase.Есть ли способ реализовать FirebaseListAdapter в виде табуляции?

Я могу получить и показать данные внутри действия. Но я не знаю, как использовать FirebaseListAdapter внутри фрагмента. FirebaseListAdapter нуждается в первом аргументе как Activity, но как передать фрагмент как активность?

childRef = databaseReference.child(str); 
FirebaseListAdapter<Leave> firebaseListAdapter = new FirebaseListAdapter<Leave>(
      this, 
      Leave.class, 
      R.layout.leavelistview, 
      childRef 
    ) { 
     @Override 
     protected void populateView(View v, Leave model, int position) { 
      ((TextView)v.findViewById(R.id.lv_staffname)).setText(model.getName()); 
      ((TextView)v.findViewById(R.id.lv_type)).setText(model.getType()); 
      ((TextView)v.findViewById(R.id.lv_duration)).setText(model.getDuration()); 
     } 
    }; 
    listView.setAdapter(firebaseListAdapter); 

Это код, который я использовал в деятельности. Но реализация этого внутри фрагмента приводит к ошибке, поскольку мы не можем передать для фрагмента.

ответ

2

Вы можете позвонить getActivity() по фрагменту, чтобы передать его на адаптер. Как это:

FirebaseListAdapter<Leave> firebaseListAdapter = new FirebaseListAdapter<Leave>(
      getActivity(), 
      Leave.class, 
      R.layout.leavelistview, 
      childRef 
    ) { 
     @Override 
     protected void populateView(View v, Leave model, int position) { 
      ((TextView)v.findViewById(R.id.lv_staffname)).setText(model.getName()); 
      ((TextView)v.findViewById(R.id.lv_type)).setText(model.getType()); 
      ((TextView)v.findViewById(R.id.lv_duration)).setText(model.getDuration()); 
     } 
    }; 
+0

его все еще дает мне ошибку говоря ожидаемый параметр является 'android.app.activity' –

+0

Попробуйте использовать' getActivity() ' –

+0

исчезла ошибка. –

Смежные вопросы