【发布时间】:2017-08-26 18:09:00
【问题描述】:
所以我有一个回收器视图,其中加载了包含文本和图像的项目以及一个复选框。最初加载所有数据都很好,包括使用毕加索的图像。该复选框最初是隐藏的,一旦我点击一个按钮,这不是回收站视图的一部分。复选框应出现在回收站视图的所有项目中。一切正常,除了图像一旦我这样做就会消失。
我这样做的方式是将我的 recyclerview 的适配器设置为 null,然后初始化一个新的 recycler view 适配器,该适配器具有可见的复选框并将其设置为我的 recycler 视图。
如果我尝试使用顶部的搜索栏搜索特定列表项,也会发生同样的事情。知道为什么吗?这是关于我如何将适配器设置为我的回收站视图的代码。
// set the adapter to null on cards list view.
cards_list_view.setAdapter(null);
// Initialize the adapter again.
deckCardRecycleAdapter = new DeckCardRecycleAdapter(getActivity(), cards_list, show_checkbox);
// Set the adapter again to list view.
cards_list_view.setAdapter(deckCardRecycleAdapter);
这是我在适配器中的 onBindViewHolder 函数。
@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int position) {
typeface = Typeface.createFromAsset(context.getAssets(), "fonts/futura-medium.otf");
viewHolder.user_name.setTypeface(typeface);
viewHolder.user_name.setText(cards.get(position).getName().toString());
viewHolder.position.setTypeface(typeface);
viewHolder.position.setText(cards.get(position).getPosition().toString());
viewHolder.dot.setTypeface(typeface);
viewHolder.event_saved.setTypeface(typeface);
if(cards.get(position).getEvent_name().toString().equals("None")) {
viewHolder.event_saved.setVisibility(View.GONE);
viewHolder.dot.setVisibility(View.GONE);
}
else
viewHolder.event_saved.setText(cards.get(position).getEvent_name().toString());
viewHolder.date_saved.setTypeface(typeface);
String timestamp = cards.get(position).getTimestamp().toString();
viewHolder.date_saved.setText(toDate(timestamp));
if(cards.get(position).image_url.toString().equals("None"))
viewHolder.user_image.setImageResource(R.drawable.anonymous);
else {
String url_image = cards.get(position).image_url.toString();
Picasso.with(this.context).cancelRequest(viewHolder.user_image);
Picasso.with(context).load(url_image).into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
viewHolder.user_image.setImageBitmap(bitmap);
cards.get(position).setImage_url(getStringImage(bitmap));
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
});
}
请帮忙。提前致谢。
【问题讨论】:
标签: android android-recyclerview picasso android-image