RecyclerView實(shí)現(xiàn)插入和刪除
原來我們用listview的時候,插入數(shù)據(jù)了以后直接通過adapter的notifydatasetchanged就OK了。然后recycleview比listview更好的地方,就是它更靈活,控制性更強(qiáng),我們想怎么擺弄就怎么擺弄。這本主要講述RecyclerView的三種方法。
1、notifyItemInserted(int position)
2、notifyItemRangeChanged(int positionStart, int itemCount)
3、notifyItemRemoved(int position)
1、notifyItemInserted(int position)
意思就是在位置position的地方,插入一條。
看代碼
public class TestActivity extends AppCompatActivity { @Bind(R.id.button_add) Button buttonAdd; @Bind(R.id.recycler) RecyclerView recycler; private MyAdapter mAdapter; private List<String> mList = new ArrayList<>(); private int count = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit_text); ButterKnife.bind(this); initData(); recycler.setLayoutManager(new LinearLayoutManager(this)); mAdapter = new MyAdapter(this,mList); recycler.setAdapter(mAdapter); } private void initData() { for(int i=0;i<15;i++){ mList.add(i+""); } } @OnClick(R.id.button_add) public void add(){ count++; mList.add(2,"插入"+count); mAdapter.notifyItemInserted(2); mAdapter.notifyItemRangeChanged(2,mList.size()-2); } }
看代碼可以知道,我在position=2的位置,插入了數(shù)據(jù),結(jié)果很快插入了,不需要更新整個列表
2、但是大家會發(fā)現(xiàn),我代碼里面還有一句
mAdapter.notifyItemRangeChanged(2,mList.size()-2)
這句話是什么意思呢?意思就是從position為2位置開始的itemCount個數(shù)的item是新加來的,后面的位置position要相應(yīng)的更新。
比如我在位置2的地方添加一條數(shù)據(jù),原來位置2的地方的的數(shù)據(jù)現(xiàn)在的position應(yīng)該是3了,如果不加這句話,則點(diǎn)擊3的時候,還是提示position為2。
這個應(yīng)該是google的一個bug。
3、notifyItemRemoved(int position),把position位置的那條刪除
@OnClick(R.id.button_delete) public void delete(){ mList.remove(2); mAdapter.notifyItemRemoved(2); mAdapter.notifyItemRangeChanged(0,mList.size()-2); }
這段代碼的意思是把position為2位置的那條數(shù)據(jù)刪掉,看效果
這個地方還是要notifyItemRangeChanged的,不然position也不會變的。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android使用CardView作為RecyclerView的Item并實(shí)現(xiàn)拖拽和左滑刪除
- Android中RecyclerView實(shí)現(xiàn)Item添加和刪除的代碼示例
- Android Recyclerview實(shí)現(xiàn)多選,單選,全選,反選,批量刪除的功能
- android RecyclerView側(cè)滑菜單,滑動刪除,長按拖拽,下拉刷新上拉加載
- android RecyclerView實(shí)現(xiàn)條目Item拖拽排序與滑動刪除
- Android中RecyclerView實(shí)現(xiàn)滑動刪除與拖拽功能
- Android recyclerview實(shí)現(xiàn)拖拽排序和側(cè)滑刪除
- RecyclerView進(jìn)階:使用ItemTouchHelper實(shí)現(xiàn)拖拽和側(cè)滑刪除效果
- Android 滑動監(jiān)聽RecyclerView線性流+左右劃刪除+上下移動
- Android RecyclerView滑動刪除和拖動排序
相關(guān)文章
Android仿微信activity滑動關(guān)閉效果
這篇文章主要為大家詳細(xì)介紹了Android仿微信activity滑動關(guān)閉的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01Android中Glide獲取圖片Path、Bitmap用法詳解
這篇文章主要介紹了Android中Glide獲取圖片Path、Bitmap用法以及代碼分析,需要的朋友們參考一下吧。2017-12-12Android MPAndroidChart開源圖表庫之餅狀圖的代碼
MPAndroidChart是一款基于Android的開源圖表庫,MPAndroidChart不僅可以在Android設(shè)備上繪制各種統(tǒng)計(jì)圖表,而且可以對圖表進(jìn)行拖動和縮放操作,應(yīng)用起來非常靈活2018-05-05Android自定義EditText實(shí)現(xiàn)淘寶登錄功能
這篇文章主要為大家詳細(xì)介紹了Android自定義EditText實(shí)現(xiàn)淘寶登錄功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12Android 自定義可拖拽View界面渲染刷新后不會自動回到起始位置
這篇文章主要介紹了Android 自定義可拖拽View界面渲染刷新后不會自動回到起始位置的實(shí)現(xiàn)代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02ActivityManagerService廣播注冊與發(fā)送示例解析
這篇文章主要為大家介紹了ActivityManagerService廣播注冊與發(fā)送示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03android?studio實(shí)現(xiàn)上傳圖片到j(luò)ava服務(wù)器
這篇文章主要為大家詳細(xì)介紹了android?studio實(shí)現(xiàn)上傳圖片到j(luò)ava服務(wù)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08Flutter質(zhì)感設(shè)計(jì)之持久底部面板
這篇文章主要為大家詳細(xì)介紹了Flutter質(zhì)感設(shè)計(jì)之持久底部面板,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08