I got images from my server in a list using RecyclerView
. When I click on one of the items in RecyclerView
, I want the image in that item to open a new activity. How can I get that image? Thanks in Advance.
RecyclerViewAdapter.java
public RecyclerViewAdapter(List<GetDataAdapter> getDataAdapter, Context context) {
super();
this.getDataAdapter = getDataAdapter;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recyclerview_items, parent, false);
ViewHolder viewHolder = new ViewHolder(v,context,getDataAdapter);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder Viewholder, int position) {
GetDataAdapter getDataAdapter1 = getDataAdapter.get(position);
imageLoader1 = ServerImageParseAdapter.getInstance(context).getImageLoader();
imageLoader1.get(getDataAdapter1.getImageServerUrl(),
ImageLoader.getImageListener(
Viewholder.networkImageView,//Server Image
R.mipmap.ic_launcher,//Before loading server image the default showing image.
android.R.drawable.ic_dialog_alert //Error image if requested image dose not found on server.
)
);
Viewholder.networkImageView.setImageUrl(getDataAdapter1.getImageServerUrl(), imageLoader1);
Viewholder.ImageTitleNameView.setText(getDataAdapter1.getImageTitleName());
}
@Override
public int getItemCount() {
return getDataAdapter.size();
}
// public static
class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView ImageTitleNameView;
public NetworkImageView networkImageView;
List<GetDataAdapter> getDataAdapter ;//= new List<GetDataAdapter>();
Context context;
public ViewHolder(View itemView,Context context,List<GetDataAdapter> getDataAdapter) {
super(itemView);
this.getDataAdapter=getDataAdapter;
this.context=context;
itemView.setOnClickListener(this);
ImageTitleNameView = (TextView) itemView.findViewById(R.id.textView_item);
// networkImageView = (NetworkImageView) itemView.findViewById(R.id.VollyNetworkImageView1);
networkImageView = (NetworkImageView) itemView.findViewById(R.id.VollyNetworkImageView1);
}
@Override
public void onClick(View v) {
int position = getAdapterPosition();
GetDataAdapter getDataAdapters=this.getDataAdapter.get(position);
Intent intent=new Intent(this.context,SecondPage.class);
intent.putExtra("image_title",getDataAdapters.getImageTitleName());
intent.putExtra("image_url",getDataAdapters.getImageServerUrl());
this.context.startActivity(intent);
}
}
}
SecondPage.java
imageView=(ImageView)findViewById(R.id.imge);
Intent i = getIntent();
int resid =i.getIntExtra("image_url", 0);
imageView.setImageResource(Integer.parseInt("image_url"+getIntent().getStringExtra("image_url")));
imageView.setImageResource(resid);
If your images are stored in an ArrayList, pass the position of the RecyclerView element via intent and set the src
of the ImageView in your SecondPage.java
as:
OnClick
:
myIntent.putExtra("imageIndex", position);
SecondPage.java
imageView=(ImageView)findViewById(R.id.imge);
Intent i = getIntent();
int imgIndex = i.getIntExtra("imageIndex", 0);
imageView.setImageResource(ArrayList.get(imgIndex));
In case, you are passing an ImageUrl via intent use Picasso to diaplay an image in ImageView as:
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
Make sure you add the Picasso library to your project gradle:
compile 'com.squareup.picasso:picasso:2.5.2'
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.