android - 如何在 Recyclerview 项目单击方法中将图像获取到新活动
问题描述
我正在创建一个像 Activity 这样的新闻提要,其中图像从 firebase 检索到 Recyclerview 并使用 picasso 显示。我需要通过 Onclick 在新活动中打开相同的详细信息。我在新的 Acvtivity 中收到短信。但是我怎样才能使用 url 获取图像。请帮助编码。
我的主适配器
public class NoticeAdapter extends RecyclerView.Adapter<NoticeAdapter.Noticeviewholder> {
public List<Noticemodel> noticemodelList;
Notice notice;
public NoticeAdapter(List<Noticemodel> noticemodelList, Notice notice) {
this.noticemodelList = noticemodelList;
this.notice=notice;
}
@NonNull
@Override
public Noticeviewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater layoutInflater=LayoutInflater.from(parent.getContext());
View view=layoutInflater.inflate(R.layout.notice_item,null,false);
return new Noticeviewholder(view,notice,noticemodelList);
}
@Override
public void onBindViewHolder(@NonNull final Noticeviewholder noticeviewholder, final int position) {
noticeviewholder.ntitle.setText(noticemodelList.get(position).getTitle());
noticeviewholder.ndescription.setText(noticemodelList.get(position).getDescription());
Picasso.get().load(noticemodelList.get(position).getImage()).into(noticeviewholder.nimageview);
}
@Override
public int getItemCount() {
return noticemodelList.size();
}
public class Noticeviewholder extends RecyclerView.ViewHolder implements View.OnClickListener
{
TextView ntitle;
TextView ndescription;
ImageView nimageview;
Notice notice;
List<Noticemodel> noticemodelList;
public Noticeviewholder(View itemView, Notice notice, List<Noticemodel> noticemodelList) {
super(itemView);
this.notice=notice;
this.noticemodelList=noticemodelList;
itemView.setOnClickListener(this);
ntitle=itemView.findViewById(R.id.notTitle);
ndescription=itemView.findViewById(R.id.notDescription);
nimageview=itemView.findViewById(R.id.notImage);
}
@Override
public void onClick(View view) {
int position = getAdapterPosition();
Noticemodel noticemodel=this.noticemodelList.get(position);
Intent intent= new Intent(this.notice,Noticedetails.class);
intent.putExtra("title",noticemodelList.get(position).getTitle());
intent.putExtra("description",noticemodelList.get(position).getDescription());
intent.putExtra("image",noticemodelList.get(position).getImage());
this.notice.startActivity(intent);
}
}
}
新活动课
public class Noticedetails extends AppCompatActivity {
TextView ndTiltle,ndDescription;
ImageView ndImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_noticedetails);
ndTiltle= findViewById(R.id.ndTitle);
ndDescription= findViewById(R.id.ndDescription);
ndImage= findViewById(R.id.ndImage);
ndImage.setImageResource(getIntent().getIntExtra("image",00));
ndTiltle.setText(getIntent().getStringExtra("title"));
ndDescription.setText(getIntent().getStringExtra("description"));
}
}
解决方案
在新活动集图像中使用Picasso
Picasso.get().load(getIntent().getStringExtra(“image”)).into(ndImage);
推荐阅读
- node.js - 为什么我在终端中得到 ECONNREFUSED 而不是浏览器?
- android - auth.signInWithEmailAndPassword - 使用最新版本的 Firebase 身份验证 - 20.0.2 给出错误
- linux - 轮询环境文件以进行更改
- python - CV2.imread() Python 图像未加载且未显示错误
- flutter - 如何确保用户和聊天机器人之间的对话保留在应用程序中 - Dialogflow
- r - 调试我无法正常运行的 R 代码
- vb.net - 在 VB.NET 中查找图片中的对象并返回其位置
- uml - UML 中的服务类表示
- r - R - 将数据帧逐列拆分为列表,同时保留第二列,然后按列名重命名列表元素
- php - 如何使用 Codeigniter 在 Guzzle 中使用原始数据?