国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

RecyclerView實現插入和刪除

2019-12-12 00:33:05
字體:
來源:轉載
供稿:網友

原來我們用listview的時候,插入數據了以后直接通過adapter的notifydatasetchanged就OK了。然后recycleview比listview更好的地方,就是它更靈活,控制性更強,我們想怎么擺弄就怎么擺弄。這本主要講述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的位置,插入了數據,結果很快插入了,不需要更新整個列表

2、但是大家會發現,我代碼里面還有一句

mAdapter.notifyItemRangeChanged(2,mList.size()-2)

這句話是什么意思呢?意思就是從position為2位置開始的itemCount個數的item是新加來的,后面的位置position要相應的更新。

比如我在位置2的地方添加一條數據,原來位置2的地方的的數據現在的position應該是3了,如果不加這句話,則點擊3的時候,還是提示position為2。

這個應該是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位置的那條數據刪掉,看效果

這里寫圖片描述

這個地方還是要notifyItemRangeChanged的,不然position也不會變的。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南康市| 大田县| 万荣县| 迁西县| 鄢陵县| 新巴尔虎左旗| 仙游县| 桐梓县| 四子王旗| 天祝| 德令哈市| 抚州市| 康马县| 中江县| 罗田县| 乐安县| 门头沟区| 微山县| 观塘区| 北海市| 洮南市| 台中县| 吉安市| 嘉峪关市| 安阳市| 比如县| 平和县| 呼玛县| 封开县| 古浪县| 宁河县| 淮北市| 金乡县| 六盘水市| 洛扎县| 徐闻县| 浙江省| 略阳县| 远安县| 松桃| 上饶县|