버튼 클릭시에 해당 리사이클러뷰에 아이템을 삭제하도록 만듦과 동시에 db에 저장된
아이템도 삭제하는 기능을 만들고 있습니다 (즉, 앱을 다시 껐다 켰을때 남아있지 않고 사라지게)
리사이클러뷰 아이템 마다 삭제버튼이 달려있습니다 (( 정보 +삭제 버튼 )<-이게 한 아이템 )
이것은 database중 일부인 아이템을 삭제하는 코드입니다
조건문을 내가 누른 삭제 버튼에 해당하는 아이템만 삭제하도록 하는 조건문은 어떻게 작성해야하나요??
public void deleteItem(String year, String month, String age, String grade, String score ) {
try {
1) db.execSQL( "delete from " + TABLE_TEST_INFO + " where 그 다음 어떻게..?" );
2 )db.execSQL( "delete from " + TABLE_TEST_INFO + "(YEAR, MONTH, AGE, GRADE, SCORE) values ('" + year + "', '" + month + "', '" + age + "', '" + grade + "', '" + score + "');" );
} catch(Exception ex) {
}
}
이것은 어뎁터입니다
deletebutton을 눌렀을때 리사이클러뷰 아이템을 사라지게 하고 동시에 callback.select(~)를 통해 데이터베이스에서도 제거하도록 하고싶습니다
public class TestAdapter extends RecyclerView.Adapter<TestAdapter.ViewHolder>{
ArrayList<TestInfo> testInfos = new ArrayList<TestInfo>();
OnDatabaseCallback callback;
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext());
View itemView = inflater.inflate(R.layout.test_item, viewGroup, false);
return new ViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {
TestInfo testInfo = testInfos.get(position);
viewHolder.setItem(testInfo);
viewHolder.deletebutton.setTag(position);
viewHolder.deletebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int itemposition = (int)v.getTag();
testInfos.remove(itemposition);
notifyDataSetChanged();
callback.delete(~);
}
});
}
@Override
public int getItemCount() {
return testInfos.size();
}