프로그래밍 방식으로 recyclerview에 새 항목을 추가 하시겠습니까?
나는 여전히 recyclerview에 대해 머리를 돌리려고 노력하고 있습니다. 리사이클 러 뷰를 초기화하는 데 사용하는 arraylist가 있습니다.
어댑터 및 레이아웃 관리자를 설정하는 리사이클 러 뷰 포스트에 새 항목을 추가하려면 어떻게해야합니까?
private void initData() {
mItems = new ArrayList<String>();
for (int i = 0; i < ITEMS_COUNT; i++) {
mItems.add("Item " + (i + 1));
}
}
private void initRecyclerView() {
mRecentRecyclerView = (RecyclerView) findViewById(R.id.recentrecyclerView);
mRecentRecyclerView.setHasFixedSize(true);
mRecentLayoutManager = new LinearLayoutManager(this);
mRecentRecyclerView.setLayoutManager(mRecentLayoutManager);
mAdapter = new RecyclerView.Adapter<CustomViewHolder>() {
@Override
public CustomViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.notice_snippet
, viewGroup, false);
return new CustomViewHolder(view);
}
@Override
public void onBindViewHolder(CustomViewHolder viewHolder, int i) {
viewHolder.noticeSubject.setText(mItems.get(i));
}
@Override
public int getItemCount() {
return mItems.size();
}
};
mRecentRecyclerView.setAdapter(mAdapter);
private class CustomViewHolder extends RecyclerView.ViewHolder {
private TextView noticeSubject;
public CustomViewHolder(View itemView) {
super(itemView);
noticeSubject = (TextView) itemView.findViewById(R.id.notice_subject);
}
}
그래서 기본적으로 I initdata()
및 initRecyclerView()
, RecyclerView에 새 항목을 어떻게 추가합니까 ??
먼저 항목을 추가 mItems
하고 다음을 사용하십시오.
mAdapter.notifyItemInserted(mItems.size() - 1);
이 방법은 다음을 사용하는 것보다 낫습니다.
mAdapter.notifyDataSetChanged();
성능.
데이터 구조 (mItems)에 추가 한 다음 어댑터에 데이터 세트 변경에 대해 알립니다.
private void addItem(String item) {
mItems.add(item);
mAdapter.notifyDataSetChanged();
}
addItem("New Item");
목록에 여러 항목을 추가하는 경우 다음을 사용하십시오.
mAdapter.notifyItemRangeInserted(startPosition, itemcount);
This notify any registered observers that the currently reflected itemCount items starting at positionStart have been newly inserted. The item previously located at positionStart and beyond can now be found starting at position positinStart+itemCount
existing item in the dataset still considered up to date.
참고URL : https://stackoverflow.com/questions/27845069/add-a-new-item-to-recyclerview-programmatically
'development' 카테고리의 다른 글
JavaScript에서 href 링크를 비활성화하려면 어떻게합니까? (0) | 2020.08.15 |
---|---|
MVC 모델에서 바이트 배열 이미지를 표시하는 방법 (0) | 2020.08.15 |
jquery로 입력 필드에서 특수 문자를 차단하거나 제한하는 방법은 무엇입니까? (0) | 2020.08.15 |
Android 앱에서 "공유"버튼을 활성화하는 방법은 무엇입니까? (0) | 2020.08.15 |
UITableView에서 첫 번째 섹션 헤더를 숨기는 방법 (그룹화 된 스타일) (0) | 2020.08.15 |