简体   繁体   English

如何使用 itemview OnClickListener 从图库中获取图像

[英]how to get image from gallery with itemview OnClickListener

holder.itemView.setOnClickListener(new View.OnClickListener() {
    
    @Override
    public void onClick(View view) {

//
    }
});

Now, it is impossible to use startActivityForResult.现在,不可能使用 startActivityForResult。

I have to use a launcher, but I don't know what to do because it's a click event that happens in the item view and I'm going to put the image in the item view我必须使用启动器,但我不知道该怎么做,因为它是在项目视图中发生的单击事件,我将把图像放在项目视图中

I tried various methods, but they were all for activities, so they didn't work.各种方法都试过了,但都是为了活动,所以都不奏效。

You need either to cast the context to Activity, or to pass the onClickListener to the adapter as following您需要将上下文转换为 Activity,或者将 onClickListener 传递给适配器,如下所示

  1. Create the clickListener创建点击监听器

    public interface MyClickListener { void onItemClick(MyModel model); }
  2. In your adapter class:在您的适配器 class 中:

     public class MyAdapter extends RecyclerView.Adapter<ViewHolder> { private MyClickListener onClickListener; public MyAdapter(MyClickListener onClickListener) { this.onClickListener = onClickListener; }... }
  3. In your method:在你的方法中:

     holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onClickListener.onItemClick(myModel); } });
  4. In your activity:在你的活动中:

     MyAdapter adapter = new MyAdapter(new MyClickListener() { public void onItemClick(MyModel model) { /// here you can call startActivityForResult } });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM