2017-02-04 9 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); 

これは私がアクティビティで使用したコードです。しかし、これをフラグメントの中に実装すると、フラグメントにthisを渡すことができないため、私にエラーが発生します。

答えて

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

エラーがなくなって使用してみてください 'と言って私にエラーを与える:このように。 –

関連する問題