Android Recyclerview Checkbox position Check 유지
2020. 6. 8. 16:31ㆍAndroid
반응형
1.포지션 Data 모델 생성 OR ArrayList<String> 생성
2.액티비티에서 해당 리사이클러뷰 어뎁터 포지션값을 받아와서 저장
인터페이스 생성
public interface click_interface {
void onClick (String position);
}
MainActivity
public class MainActivity extends AppCompatActivity implements click_interface{
Adapter adapter;
ArrayList<String> position_data;
Context context;
Recyclerview recyclerview;
RecyclerView.LayoutManager layoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_message__list);
context = this;
recyclerview = findViewById(R.id.recyclerview);
recyclerview.setHasFixedSize(true); //리사이클러뷰 셋팅
layoutManager = new LinearLayoutManager(MainActivity.this);//리사이클러뷰 셋팅
recyclerview.setLayoutManager(layoutManager);// 리사이클러뷰 셋팅
adapter = new Adapter(context,deleteClickInterface);
recyclerview.setAdapter(adapter);
}
@Override
public void onClick(String position) { //삭제하기 버튼 클릭시
position_data.add(position);
message_adapter.set_position_data(position_data);
}
Adapter
public class Adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
ArrayList<String> position_data = new ArrayList<String>();
private click_interface ClickInterface;
public Adapter(Context context , click_interface deleteClickInterface){
this.context = context;
this.ClickInterface = ClickInterface;
}
public void set_position_data(ArrayList<String> position_data){
this.position_data = position_data;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position){
//최초 체크박스 null
holder.delete_checkbox.setOnCheckedChangeListener(null);
//체크박스 클릭후 스크롤시 해당 포지션 유지
holder.checkbox.setChecked(position_data.contains(String.valueOf(position)));
holder.checkbox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ClickInterface.onClick(String.valueOf(position));//인터페이스 클릭
}
});
}
}
3.어뎁터 에 매개변수로 해당 ArrayList OR 모델 데이터 받기
//최초 체크박스 null
holder.delete_checkbox.setOnCheckedChangeListener(null);
//체크박스 클릭후 스크롤시 해당 포지션 유지
holder.checkbox.setChecked(position_data.contains(String.valueOf(position)));
중요하다고 생각하는부분만 긁어와서
내용들이 많이 부족합니다.
반응형
'Android' 카테고리의 다른 글
[안드로이드] 각 프래그먼트 별 뒤로가기 버튼(백버튼) 이벤트 (뷰페이저 사용) (0) | 2020.06.15 |
---|---|
Android ViewPager2 + TabView JAVA (0) | 2020.06.11 |
Android SwipeLayout (옆으로 밀기 레이아웃) (0) | 2020.06.02 |
Android 애니메이션(translation) (0) | 2020.05.25 |
Android 키보드 올림 내림 상태확인 (0) | 2020.05.25 |