作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我创建模型类的对象时。我收到这个错误。我不知道如何将本地镜像从可绘制对象传递到我的模型类。
这是我的模型类。
public class Drawer {
private String image;
private String title;
public Drawer(String image, String title) {
this.image = image;
this.title = title;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
这是我的适配器类代码。我将模型类传递给适配器。
public class DrawerAdapter extends RecyclerView.Adapter<DrawerAdapter.ViewHolder> {
private List<Drawer> drawerList;
ItemNavigationDrawerBinding binding;
public DrawerAdapter(List<Drawer> drawerList) {
this.drawerList = drawerList;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
binding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.item_navigation_drawer, parent, false);
return new ViewHolder(binding);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Glide.with(holder.itemView.getContext()).load(drawerList.get(position).getImage()).into(holder.binding.imgMain);
holder.binding.tvMain.setText(drawerList.get(position).getTitle());
}
@Override
public int getItemCount() {
return drawerList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
ItemNavigationDrawerBinding binding;
private ViewHolder(@NonNull ItemNavigationDrawerBinding binding) {
super(binding.getRoot());
this.binding = binding;
}
}
}
这就是我创建模型类对象的方式。
ArrayList<Drawer> drawerList = new ArrayList<>();
drawerList.add(new Drawer(, "My Mall"));
最佳答案
首先,要将Drawable保存到类中,我们必须使用一个整数值来存储Drawable id,然后在适配器上,将drawable设置为imageview而不是drawable id。
class Drawer {
private int image;
private String title;
public Drawer(int image, String title) {
this.image = image;
this.title = title;
}
public int getImage() {
return image;
}
public void setImage(int image) {
this.image = image;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
在适配器上更换 Glide.with(holder.itemView.getContext()).load(drawerList.get(position).getImage()).into(holder.binding.imgMain);
与
Glide.with(holder.itemView.getContext()).load(holder.itemView.getContext().getDrawable(drawerList.get(position).getImage())).into(holder.binding.imgMain);
最后添加这样的项目
ArrayList<Drawer> drawerList = new ArrayList<>();
drawerList.add(new Drawer(R.drawable.your_drawable,"your title"));
关于java - 如何将本地可绘制图像传递给模型类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62396161/
我是一名优秀的程序员,十分优秀!