gpt4 book ai didi

java - 从适配器类扩展类

转载 作者:太空宇宙 更新时间:2023-11-04 12:04:22 25 4
gpt4 key购买 nike

在我的应用程序中应该有很多彼此相似的适配器,我想知道是否可以使接口(interface)或父类(super class)从那里继承,然后而不是编写 10 个适配器,谢谢!!

我的适配器代码

public class NewsAdapter extends RecyclerView.Adapter<NewsAdapter.NewsViewHolder> {

private List<News> newsList;
private Context ctx;

public NewsAdapter(List<News> newsList, Context ctx) {
this.newsList = newsList;
this.ctx = ctx;
}

static class NewsViewHolder extends RecyclerView.ViewHolder {
CardView cv;
TextView newsTitle;
TextView newsDescription;
ImageView newsImage;
TextView newsDate;

NewsViewHolder(View itemView) {
super(itemView);
cv = (CardView) itemView.findViewById(R.id.cvNews);
newsTitle = (TextView) itemView.findViewById(R.id.title_news);
newsDescription = (TextView) itemView.findViewById(R.id.description_news);
newsDate = (TextView) itemView.findViewById(R.id.date_news);
newsImage = (ImageView) itemView.findViewById(R.id.image_news);
}
}

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

@Override
public void onBindViewHolder(NewsViewHolder holder, int position) {
holder.newsTitle.setText(newsList.get(position).newsTitle);
holder.newsDescription.setText(newsList.get(position).newsDescription);
holder.newsDate.setText(newsList.get(position).newsDate);
Glide.with(ctx).load(Constants.SITE + newsList.get(position).newsImage)
.into(holder.newsImage);
}

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

@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}

}

All should reflect like this

最佳答案

it is possible to make the interface or superclass to inherit from there and then, instead of writing 10 adapters

这是可能的,但当然必须有一些共同点。首先,数据集应该是同构的。例如。您的项目都应该实现一个接口(interface),即项目和适配器本身之间的契约。就您而言,可能是

public interface DataItem {
String getTitle();
String getDescription();
String getDate();
String getImageUrl();
}

而不是 private List<News> newsList; ,您将拥有私有(private) List<? extends DataItem> newsList; 。正如我所说,您的所有项目都必须实现该接口(interface),并且必须通过 getter 访问属性

关于java - 从适配器类扩展类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40561176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com