我正在使用Firebase作为数据库和预览来获取有关已保存数据的信息,现在可以在视图中同时显示图像和该图像的名称,但是现在我希望能够单击快速查看并打开一个新的片段或活动,在其中可以显示单击的相同图像或出版物,即单击recyclerview帖子时的照片,名称和在该新片段或活动中包含其他数据的权力
举例来说:一家服装店,您有一个回收站,上面有您的产品和您的名字,单击该产品后会打开,但您拥有所有其他详细信息和规格。
我当前正在使用:带有片段的Firebase导航按钮
显示回收站视图的片段:
mRecyclerView = v.findViewById(R.id.recycler_view);
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mUploads = new ArrayList<>();
mDatabaseRef = FirebaseDatabase.getInstance().getReference("Posts");
mDatabaseRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
Uploads uploads = postSnapshot.getValue(Uploads.class);
mUploads.add(uploads);
}
mAdapter = new ImageAdapter(getActivity(), mUploads);
mRecyclerView.setAdapter(mAdapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});return v;
//适配器代码
public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ImageViewHolder> {
private Context mContext;
private List<Uploads> mUploads;
public ImageAdapter(Context context, List<Uploads> uploads) {
mContext = context;
mUploads = uploads;
}
@Override
public ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(mContext).inflate(R.layout.home_item, parent, false);
return new ImageViewHolder(v);
}
@Override
public void onBindViewHolder(ImageViewHolder holder, final int position) {
Uploads uploadCurrent = mUploads.get(position);
holder.textViewName.setText(uploadCurrent.getName());
Picasso.get()
.load(uploadCurrent.getImageUrl())
.placeholder(R.mipmap.ic_launcher)
.into(holder.imageView);
}
@Override
public int getItemCount() {
return mUploads.size();
}
public class ImageViewHolder extends RecyclerView.ViewHolder {
public TextView textViewName;
public ImageView imageView;
public ImageViewHolder(View itemView) {
super(itemView);
textViewName = itemView.findViewById(R.id.Descripcion);
imageView = itemView.findViewById(R.id.ImagePro);
}
}
}
答案 0 :(得分:0)
您有两个选择。
您可以创建一个回调接口并从适配器的onClick触发该回调方法。实现该接口并将其实例传递给Adapter的活动或片段将获得回调,您可以从那里启动快速视图。我更喜欢这种方法。 Here,您可以找到实现此目的的详细示例。
由于您的班级中已有Context
,因此您可以直接在Activity或Fragment中引用一个方法,并从那里创建一个快速查看的Fragment。
public void onBindViewHolder(ImageViewHolder holder, final int position) {
((YourActivity) context).startQuickviewFragment();
}