2017-08-28 78 views
0

我试图从firebase数据库中检索数据,并在每8项中放入广告。我已经创建了适配器“posts_adapter”,但我不知道如何检索数据以在回收站视图中显示它们。请问任何人都可以帮助我,告诉我如何使用admob从firebase检索数据到回收者视图。如何使用适配器检索Firebase列表

这里是我的适配器:

public class posts_adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { 

private static final int Posts_View = 0; 

private static final int AD_MOB_View = 1; 

private final List<retrieve_data> mPosts_List; 


public posts_adapter(List<retrieve_data> mPosts_List) { 
    this.mPosts_List = mPosts_List;} 


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


@Override public int getItemViewType(int position) {return (position % 8 == 0) ? AD_MOB_View : Posts_View;} 


@Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { 
    switch (viewType) { 
     case Posts_View: 
      View posts_view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.posts_handler_view, viewGroup, false); 
      return new Posts_View_Holder(posts_view); 
     case AD_MOB_View: 

     default:View ad_view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.ad_handler_view, viewGroup, false); 
      return new NativeExpressAdViewHolder(ad_view);} 

} 

private class Posts_View_Holder extends RecyclerView.ViewHolder { 

    Posts_View_Holder(View view) { 
     super(view); 
     //POSTS VIEW 
    } 
} 

private class NativeExpressAdViewHolder extends RecyclerView.ViewHolder { 

    NativeExpressAdViewHolder(View view) { 
     super(view); 

     //AD VIEW 
    } 
} 


@Override 
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 
    int viewType = getItemViewType(position); 
    switch (viewType) { 
     case Posts_View: 

      //Retrieve data for posts 

      break; 

     case AD_MOB_View: 

      //Retrieve data from ads 

     default: 

    } 
} 

}

这是我的JSON:

}, 
    "posts" : { 
    "-Ks7yUeMgNpPM5P8nF_7" : { 
     "describe" : "Hello world", 
     "location" : "USA, NY", 
     "latlng" : "0,0", 
     "photo" : "null", 
     "time" : 1503389171, 
     "uid" : "8J1lF6awbAVWm8ruJEKUNWcuG512" 
    } 
    }, 

,这里是我的课:

mMain_RecyclerView = (RecyclerView) v.findViewById(R.id.Main_RecyclerView); 
    mMain_RecyclerView.setHasFixedSize(true); 
    mMain_RecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); 

请帮助我如何使用回收器视图中的适配器与admob每8个意见。

+0

有你试图寻找在这个例子中 - https://github.com/googleads/googleads-mobile-android-examples/tree/master/advanced/NativeExpressRecyclerViewExample –

+0

诅咒,但我不明白很会...所以我只需要一个简单的方法不先进..如果可能的话请帮助我.. – 7uthaifah

回答

0

如果我正确地理解你的问题。你应该检索您的活动片段你在做这个适配器的数据,并通过它的构造函数传递对象的检索对象或数组列表中的适配器。

这是从来没有检索或从/到网络,通过适配器发送的数据是个好主意。由于网络连接过程可能需要一些时间,您不会希望在您的适配器中。

例如,

  1. 内部活性/ FRAGMENT

FirebaseDatabase db = FirebaseDatabase.getInstance();

  • 然后创建到路径

  • 参考检索数据并将其存储在一个物体或arrayList使用addOnComlpleteListener

  • 传递arrayList或对象适配器

  • 这里的构造函数,你将有arrayList或对象以前过去了,你可以利用这些数据,他们携带

  • 相关问题