【发布时间】:2018-08-22 05:06:52
【问题描述】:
我有一些 url 字符串,一些以 .png 结尾,而另一些以 .svg 结尾。 .png 可以很好地加载到 recyclerview 中,但 .svg 却无处可见。我搜索了很多论坛,但目前还没有任何效果。
我的 recyclerviewadapter 的 onBindViewHolder 中有以下代码,用于确定 url 是否为 .svg。如果有人有任何想法,我将非常感激。
String[] homeUrlSplit = mData.get(i).getHomeTeamBadge().split("\\.");
String homeImageType = homeUrlSplit[homeUrlSplit.length-1];
if(homeImageType.equals("svg")){
// do something here
}
else {
Glide
.with(mContext)
.load(mData.get(i).getHomeTeamBadge())
.into(myViewHolder.homeTeamBadge);
}
谢谢
编辑:我不太了解“可能重复”答案下的 cmets 中包含的解决方案。如果有人知道任何其他解决方案,或者能够用外行的方式解释这个特定的解决方案,我将非常感激。
这是适配器设置:
RecyclerViewAdapterFixtures recyclerViewAdapterFixtures = new RecyclerViewAdapterFixtures(getContext(), matchesList, getActivity());
recyclerViewFixtures.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerViewFixtures.setAdapter(recyclerViewAdapterFixtures);
这里是recylerviewadapter代码
public class RecyclerViewAdapterFixtures extends RecyclerView.Adapter<RecyclerViewAdapterFixtures.MyViewHolder> {
Context mContext;
List<Match> mData;
Activity mActivity;
public RecyclerViewAdapterFixtures(Context mContext, List<Match> mData, Activity mActivity) {
this.mContext = mContext;
this.mData = mData;
this.mActivity = mActivity;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View v;
v = LayoutInflater.from(mContext).inflate(R.layout.item_fixture, viewGroup, false);
MyViewHolder vHolder = new MyViewHolder(v);
return vHolder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, final int i) {
myViewHolder.textViewHomeTeam.setText(mData.get(i).getHomeTeamName());
String[] homeUrlSplit = mData.get(i).getHomeTeamBadge().split("\\.");
String homeImageType = homeUrlSplit[homeUrlSplit.length-1];
if(homeImageType.equals("svg")){
SvgLoader.pluck()
.with(mActivity)
.setPlaceHolder(R.mipmap.ic_launcher, R.mipmap.ic_launcher)
.load(mData.get(i).getHomeTeamBadge(), myViewHolder.homeTeamBadge);
}
else {
Glide
.with(mContext)
.load(mData.get(i).getHomeTeamBadge())
.into(myViewHolder.homeTeamBadge);
}
}
@Override
public int getItemCount() {
return mData.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
private TextView textViewVersus;
private EditText homeTeamScore;
private EditText awayTeamScore;
private TextView textViewHomeTeam;
private TextView textViewAwayTeam;
private ImageView homeTeamBadge;
private ImageView awayTeamBadge;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
textViewVersus = (TextView) itemView.findViewById(R.id.textViewVersus);
homeTeamScore = (EditText) itemView.findViewById(R.id.homeTeamScore);
awayTeamScore = (EditText) itemView.findViewById(R.id.awayTeamScore);
textViewHomeTeam = (TextView) itemView.findViewById(R.id.textViewHomeTeam);
textViewAwayTeam = (TextView) itemView.findViewById(R.id.textViewAwayTeam);
homeTeamBadge = (ImageView) itemView.findViewById(R.id.homeTeamBadge);
awayTeamBadge = (ImageView) itemView.findViewById(R.id.awayTeamBadge);
}
}
}
【问题讨论】:
-
感谢您的回复。这是我以前遇到过的论坛之一,我想在这里找出 url 是否以 .svg 或其他内容结尾。但我无法让请求生成器工作