RecyclerView库中的遗珠,真是恍然大悟啊

if (oldItem.getId() != newItem.getId()) {
return false;
}
return oldItem.getCityName().equals(newItem.getCityName());
}
}

Adapter部分

public class SortedAdapter extends RecyclerView.Adapter<SortedAdapter.ViewHolder> {

// 数据源使用SortedList
private SortedList mSortedList;
private LayoutInflater mInflater;

public SortedAdapter(Context mContext) {
mInflater = LayoutInflater.from(mContext);
}

public void setSortedList(SortedList mSortedList) {
this.mSortedList = mSortedList;
}

/**

  • 批量更新操作,例如:
  • mSortedList.beginBatchedUpdates();
    
  • try {
    
  •     mSortedList.add(item1)
    
  •     mSortedList.add(item2)
    
  •     mSortedList.remove(item3)
    
  •     ...
    
  • } finally {
    
  •     mSortedList.endBatchedUpdates();
    
  • }
    
  • */
    public void setData(List mData){
    mSortedList.beginBatchedUpdates();
    mSortedList.addAll(mData);
    mSortedList.endBatchedUpdates();
    }

public void removeData(int index){
mSortedList.removeItemAt(index);
}

public void clear(){
mSortedList.clear();
}

@Override
@NonNull
public SortedAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(mInflater.inflate(R.layout.item_test, parent, false));
}

@Override
public void onBindViewHolder(@NonNull SortedAdapter.ViewHolder holder, final int position) {

}

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


}

使用部分:

public class SortedListActivity extends AppCompatActivity {

private SortedAdapter mSortedAdapter;
private int count = 10;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sorted_list);
RecyclerView mRecyclerView = findViewById(R.id.rv);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mSortedAdapter = new SortedAdapter(this);
// SortedList初始化
SortedListCallback mSortedListCallback = new SortedListCallback(mSortedAdapter);
SortedList mSortedList = new SortedList<>(City.class, mSortedListCallback);

mSortedAdapter.setSortedList(mSortedList);
mRecyclerView.setAdapter(mSortedAdapter);
updateData();
}

private void addData() {
mSortedAdapter.setData(new City(count, "城市 " + count, “c”));
count ++;
}

private List mList = new ArrayList();

private void updateData() {

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值