意图从适配器传递到活动

时间:2017-11-10 08:31:43

标签: android android-intent

对不清楚的问题抱歉。我是android和stackover flow的新手

我有一个适配器,其中包含来自服务器的图像和加载列表。 在图像的Onclick上,我需要打开另一个活动,显示点击项目的完整图像。 那时我需要将图片网址作为意图传递给下一个活动。 我需要帮助传递意图以及请澄清我是否可以安全地将图像URL从适配器传递到活动? 感谢您的帮助

我的适配器类

class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
    List<Upload> list_of_messages;
    Context context;
    Activity mActivity;
    PhotoViewAttacher pAttacher;

    public MyAdapter(Activity activity,List<Upload> list_of_messages,Context context) {
        this.mActivity = activity;
        this.list_of_messages = list_of_messages;
        this.context=context;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_promise_list,parent,false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(final MyAdapter.ViewHolder holder, final int position) {
        final Upload upload = list_of_messages.get(position);
        holder.text_date.setText(upload.getName());
        Glide.with(context).load(upload.getUrl()).into(holder.text_promise);

        final AlertDialog.Builder builder = new AlertDialog.Builder(mActivity);

        holder.text_promise.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent=new Intent(mActivity,ImageViewZoom.class);
                intent.putExtra("image_url",upload.getUrl());
                context.startActivity(intent);
            }
        });
    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {
        TextView text_date;
        ImageView text_promise;
        public ViewHolder(View itemView) {
            super(itemView);
            text_promise=itemView.findViewById(R.id.text_promise_text);
            text_date=itemView.findViewById(R.id.text_promise_date);
        }
    }

    public void onImageClicked(Activity a, String url) {
        a.startActivity(new Intent(a, FullScreenImageActivity.class).putExtra("image_url", url));
        a.overridePendingTransition(android.R.anim.fade_in, 1);
    }
}

这里点击holder.text_promise(图片视图)我需要导航到ImageViewZoom活动,我需要从适配器加载图像。

我感到困惑并寻求帮助。

1 个答案:

答案 0 :(得分:2)

  

我需要帮助传递意图

您可以将URI传递给ShowImage活动。在您用于启动活动的意图中:

Intent intent = new Intent(context, ShowImage.class);
intent.putExtra("URI", yourURI);
startActivity(intent);

访问下一个活动的意图

String s = getIntent().getStringExtra("URI");
  

请澄清我的意图传递图像网址是否安全   适配器到活动?

实际上,这是实现同样目标的最佳方式。