RecyclerView 삽입 및 삭제 실현
2818 단어 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 위치 에서 시 작 된 item Count 개수 의 item 은 새로 추 가 된 것 이 고 뒤의 위치 position 는 상응 하 게 업데이트 해 야 한 다 는 뜻 이다.예 를 들 어 제 가 위치 2 에 데 이 터 를 추가 하 는데 원래 위치 2 의 데 이 터 는 현재 position 가 3 일 것 입 니 다.이 말 을 추가 하지 않 으 면 3 을 클릭 할 때 알림 position 가 2 입 니 다.
이것 은 구 글 의 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 위치 인 데 이 터 를 삭제 하고 효 과 를 보 자 는 뜻 입 니 다.이곳 은 notify ItemRange Changed 해 야 합 니 다.그렇지 않 으 면 position 도 변 하지 않 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Android】RecyclerView+RadioButton의 작성RadioGroup을 사용하지 않고 작성합니다. RecyclerView 배치 activity_main.xml RadioButton 배치 view_item.xml RecyclerView 용 어댑터 작성. 어느 버튼을 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.