RecyclerView适配器不更新视图内容

时间:2016-01-30 10:44:15

标签: android android-custom-view android-recyclerview recycler-adapter

我使用GridLayoutManager进行Recyclerview,它正确填充网格但不更新数据。

以下是我的代码,

public class AppsGridViewAdapter extends RecyclerView.Adapter<AppsGridViewAdapter.GridViewHolder>{

private ArrayList<App> appArrayList;
private Context context;

public AppsGridViewAdapter(Context context,ArrayList<App> appArrayList){
    this.appArrayList = appArrayList;
    this.context = context;
}

public static class GridViewHolder extends RecyclerView.ViewHolder{

    CompoundAppButton compoundAppButton;
    public GridViewHolder(CompoundAppButton itemView){
        super(itemView);
        compoundAppButton = (CompoundAppButton)itemView;
    }

}

@Override
public GridViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    CompoundAppButton appButton = new CompoundAppButton(context,null);
    return new GridViewHolder(appButton);
}

@Override
public void onBindViewHolder(GridViewHolder holder, int position) {
    App app = appArrayList.get(position);
    holder.compoundAppButton.updateButtonConfig(app);
}


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

在列表中包含有效值,但不进行更新。 CustomAppButton是一个自定义视图。任何人都可以帮助我为什么不更新。

更新: 我从我的活动中调用了recyclelerview,下面是具体的代码

recyclerView = (RecyclerView)findViewById(R.id.recycler_view);
recyclerView.addItemDecoration(new MarginDecoration(this));
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
AppsGridViewAdapter adapter = new AppsGridViewAdapter(this,appList);
recyclerView.setAdapter(adapter);

该活动仅包含recyclerview。

updateButtonConfig是CustomAppButton类中的一个函数,这是更新视图的地方。获取数据到此功能,已检查日志。

public void updateButtonConfig(App app){
    Picasso.with(context)
            .load(app.getAppIcon())
            .placeholder(R.drawable.app_icon)
            .into(appIcon);
    appName.setText(app.getAppName());
    category.setText(app.getAppCategory());
    price.setText(app.getAppPrice());
    appPackage = app.getAppPackage();
}

0 个答案:

没有答案
相关问题