Reputation: 788
public class MyAdapter_home extends RecyclerView.Adapter<MyAdapter_home.MyAdapter_HomeViewHolder> {
private List<Datum> data;
private List<Datum2>data2;
private int rowLayout;
private Context context;
PopupMenu popupMenu ;
public MyAdapter_home(List<Datum> data, int rowLayout, Context context) {
this.data = data;
this.rowLayout = rowLayout;
this.context = context;
}
@Override
public MyAdapter_HomeViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_item_home, parent, false);
return new MyAdapter_HomeViewHolder(view);
}
@Override
public void onBindViewHolder(final MyAdapter_HomeViewHolder holder, final int position) {
holder.userNameTV.setText(data.get(position).getUserInfo().getFullName());
holder.msgBodyTV.setText(data.get(position).getBody());
holder.originator_iD.setText(data.get(position).getUserInfo().getId().toString());
holder.imV.setImageURI(Uri.parse(Uri.parse(data.get(position).getUserInfo().getAvatar()).getPath()));
holder.owner_type_ET.setText("1");
holder.subject_ET.setText("Message");
holder.mCardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(view.getContext(), Single_Message.class);
intent.putExtra("ORIGINATOR_ID", holder.originator_iD.getText().toString());
intent.putExtra("OWNER_TYPE", holder.owner_type_ET.getText().toString());
intent.putExtra("SUBJECT", holder.subject_ET.getText().toString());
intent.putExtra("USERNAME", holder.userNameTV.getText().toString());
view.getContext().startActivity(intent);
}
});
holder.mCardView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(final View view) {
popupMenu = new PopupMenu(view.getContext(), view);
popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() {
@Override
public void onDismiss(PopupMenu menu) {
}
});
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.lang_java:
Intent intent = view.getContext().getPackageManager().getLaunchIntentForPackage("com.freemig.social");
if (intent != null) {
// We found the activity now start the activity
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
view.getContext().startActivity(intent);
} else {
// Bring user to the market or let them choose an app?
intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse("market://details?id=" + "com.freemig.social"));
view.getContext().startActivity(intent);
}
return true;
case R.id.lang_android:
Toast.makeText(view.getContext(), "Mute Conversation clicked",
Toast.LENGTH_SHORT).show();
return true;
case R.id.lang_python:
Toast.makeText(view.getContext(), "Remove User clicked",
Toast.LENGTH_SHORT).show();
return true;
case R.id.lang_ruby:
Toast.makeText(view.getContext(), "Block User clicked",
Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
popupMenu.inflate(R.menu.popup_home_long_click);
popupMenu.show();
return false;
}
});
}
@Override
public int getItemCount() {
return data.size();
}
public static class MyAdapter_HomeViewHolder extends RecyclerView.ViewHolder {
TextView userNameTV;
TextView msgBodyTV;
CardView mCardView;
TextView originator_iD;
ImageView imV;
String s;
ConversationAPIService conversationAPIService;
EditText owner_type_ET, subject_ET;
public MyAdapter_HomeViewHolder(View itemView) {
super(itemView);
userNameTV = (TextView) itemView.findViewById(R.id.username);
msgBodyTV = itemView.findViewById(R.id.msgbody);
mCardView = (CardView) itemView.findViewById(R.id.card_view);
originator_iD = itemView.findViewById(R.id.frIdET);
imV = itemView.findViewById(R.id.iv_image);
owner_type_ET = (EditText) itemView.findViewById(R.id.owner_typeET);
subject_ET = (EditText) itemView.findViewById(R.id.subjectET);
}
}
}
This is my adapter class for a recyclerView. I want to show image avatar from here. I don't understand how to it. What I tried -
Upvotes: 2
Views: 11069
Reputation: 2301
You can use Picasso
library. Image loading using Picasso
is very easy, you can do it like this way:
Uri imageURI = Uri.parse(Uri.parse(data.get(position).getUserInfo().getAvatar()).getPath());
Picasso.with(context).load("imageURI").into(holder.imV);
and in their website you can get every details.
and another library is Glide
. You can use Glide
too for loading image.
You can also use Glide
:
Uri imageURI = Uri.parse(Uri.parse(data.get(position).getUserInfo().getAvatar()).getPath());
Glide.with(context).load(imageURI).asBitmap().placeholder(R.drawable.placeholder)
.error(R.drawable.error).into(holder.imV);
Upvotes: 2
Reputation: 129
You can also used UniversalImageLoader
library.
universalImageLoader imageLoader =new universalImageLoader();
imageLoader.loadImage(imageUri, targetSize, options, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
// use your bitmap …
}
});
For more information refer Android-Universal-Image-Loader
OR
You can used Glide Library in your Application. and you used load image in any adapter class so try this .
String url = your_array_list.get(position); GlideApp.with(myFragment).load(url).centerCrop() .placeholder(R.drawable.loading_spinner) .into(myImageView);
For more information refer glide
Upvotes: 2
Reputation: 6981
Try this:
Glide.with(context)
.load("your image url")
.into(holder.imV);
Upvotes: 0
Reputation: 3841
Try this :
GlideApp
.with(context)
.load(url)
.centerCrop() //cropping center image
.placeholder(R.drawable.loading_spinner) //placeholder while loading image
.into(viewHodler.myImageView);
Upvotes: 1
Reputation: 11642
You can log like this,
Uri uri = Uri.parse(Uri.parse(data.get(position).getUserInfo().getAvatar()).getPath());
Glide.with(context).load(uri).into(holder.imV);
Upvotes: 3