大家好我通过活动成功将视频上传到firebase,现在我想将它们视为recyclerview但是我没有把它弄好
blog_row.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="3dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<VideoView
android:id="@+id/post_video"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true" />
<TextView
android:id="@+id/post_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="1dp"
android:paddingLeft="5dp"
android:text="Post Title Goes Here"
android:textColor="@android:color/black"
android:textSize="14sp"
android:textStyle="bold" />
<TextView
android:id="@+id/post_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="5dp"
android:paddingLeft="5dp"
android:text="The Post description goes here"
android:textColor="@android:color/holo_red_light"
android:textSize="13sp"
android:textStyle="bold" />
</LinearLayout>
</android.support.v7.widget.CardView>
LatestVideos.java
public class Latest extends Fragment{
private RecyclerView mBlogList;
private GridLayoutManager gridLayoutManager;
private DatabaseReference mDatabase;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.tab1, container, false);
mDatabase = FirebaseDatabase.getInstance().getReference().child("videos");
mDatabase.keepSynced(true);
mBlogList = (RecyclerView) view.findViewById(R.id.blog_list);
mBlogList.setHasFixedSize(true);
mBlogList.setLayoutManager(new LinearLayoutManager(getContext()));
FloatingActionButton fab = (FloatingActionButton) view.findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(), UploadActivity.class);
startActivity(intent);
}
});
return view;
}
@Override
public void onStart() {
super.onStart();
FirebaseRecyclerAdapter<Blog, BlogViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Blog, Latest.BlogViewHolder>(
Blog.class,
R.layout.blog_row,
Latest.BlogViewHolder.class,
mDatabase
) {
@Override
protected void populateViewHolder(Latest.BlogViewHolder viewHolder, Blog model, int position) {
viewHolder.setTitle(model.getTitle());
viewHolder.setDesc(model.getDesc());
viewHolder.setImage(getActivity().getApplicationContext(),model.getImage());
}
};
mBlogList.setAdapter(firebaseRecyclerAdapter);
}
public static class BlogViewHolder extends RecyclerView.ViewHolder{
View mView;
public BlogViewHolder(View itemView) {
super(itemView);
mView = itemView;
}
public void setTitle(String title){
TextView post_title = (TextView) mView.findViewById(R.id.post_title);
post_title.setText(title);
}
public void setDesc(String desc){
TextView post_desc = (TextView) mView.findViewById(R.id.post_desc);
post_desc.setText(desc);
}
public void setImage(Context ctx, String video){
VideoView post_video = (VideoView) mView.findViewById(R.id.post_video);
load(video).into(post_video);
}
}
public void onResume(){
super.onResume();
// Set title bar
((MainContent) getActivity())
.setActionBarTitle("Lol Videos");
}
}
Blog.java
public class Blog {
private String title;
private String desc;
private String video;
public Blog(){
}
public Blog(String title, String desc, String video) {
this.title = title;
this.desc = desc;
this.video = video;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getVideo() {
return video;
}
public void setVideo(String video) {
this.video = video;
}
}
帮助我们解决这个问题。我整天都在尝试,但它不起作用。但如果我用图像替换视频,我的工作完美