這期內容當中小編將會給大家帶來有關使用RecyclerView怎么實現一個插入和刪除功能,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
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位置的那條數據刪掉,看效果
上述就是小編為大家分享的使用RecyclerView怎么實現一個插入和刪除功能了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。