gpt4 book ai didi

android - diffutil 排序数组适配器位置

转载 作者:行者123 更新时间:2023-12-05 00:21:29 27 4
gpt4 key购买 nike

我们正在尝试对包含来自 sqlite 数据库的数据的 ArrayList 进行排序。
我可以通过添加到查询“ORDER BY”+ Col_IDBG+“DESC 来对列表进行排序
除了 RecyclerAdapter 中的位置数据与 DESC 排序不同步外,它可以按需要工作。所以接下来我们使用 Collections.reverse(dbList);这有效,但 RecyclerAdapter 再次与相反的顺序不同步。

我们已将问题缩小到下面的 RecylerAdapter 代码。
我们想知道如何使用 DiffUtil 使位置与排序方法保持同步?

    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

public TextView station;
public TextView rowid;

public ViewHolder(View itemLayoutView) {
super(itemLayoutView);
rowid = (TextView) itemLayoutView.findViewById(R.id.rvROWID);
station = (TextView)itemLayoutView.findViewById(R.id.rvWEBSITE);
// Attach a click listener to the entire row view
itemLayoutView.setOnClickListener(this);
}

@Override // When an item in ListActivity is touched (selected) the RecyclerView has
// a OnClickListener attached in the above Code that implements the method below
public void onClick(View v) {
Intent intentN = new Intent(context,BuyGasDetailActivity.class);
Bundle extras = new Bundle();
extras.putInt("POSITION",getAdapterPosition());
extras.putString("FROM_LIST_ACTIVITY","false" );
intentN.putExtras(extras);
context.startActivity(intentN);
}
}

位置传给DetailActivity,以intentN查看ListActivity中与item相关的所有数据

最佳答案

这很容易解决你只需要使用 Collections.reverse(dbList);在两个地方 RecyclerAdapter 和 DetailActivity
这是 RecyclerAdapter 中的代码

    @Override
public int getItemCount() {
Collections.reverse(dbList);
return dbList.size();
}

这是onCreate方法中DetailActivity中的代码
    dbList = helper.getDataFrom_BUY_GAS_TABLE();
Collections.reverse(dbList);

经过测试,效果很好

关于android - diffutil 排序数组适配器位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47639751/

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