I really need your help in this one.Am working with recycle view but at this point I am trying to debug my code and check my possible error source through the LogCat. From the code, any time I delete a data (school class) through the on-click method, I display contents from the SQLite database to see if the data was actually deleted. When I click the delete button to delete a particular data (schoolclass), it is supposed to display all contents from the SQLite database in the LogCat EXCEPT the particular content that was deleted.
But at the moment, the database displays all content including the content expected to be deleted. What could be the issue, is the content actually being deleted?. what could be wrong with my entire code. I will so much appreciate your answer. Thanks!!
Here is the AdapterClass with the Onclick method for the onclick event. Notice the removeAt(getLayoutPosition());
public class ClassListOnSetupRecyclerAdapter extends RecyclerView.Adapter<ClassListOnSetupRecyclerAdapter.ClassListViewOnSetupHolder>{
//simple list of classes(mDataSet for Adapter)
private List<ClassesBean> listClasses;
private RecyclerView mRecyclerView;
private Context mContext;
public ClassListOnSetupRecyclerAdapter(List<ClassesBean> listClasses){
this.listClasses = listClasses;
}
@Override
public ClassListViewOnSetupHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_classesname_recycler,parent,false);
return new ClassListViewOnSetupHolder(itemView);
}
@Override
public void onBindViewHolder(ClassListViewOnSetupHolder holder, int position) {
holder.textView_classname.setText(listClasses.get(position).getClasses_name());
}
@Override
public int getItemCount() {
Log.v(ClassListOnSetupRecyclerAdapter.class.getSimpleName(),""+listClasses.size());
return listClasses.size();
}
// The View Holder Class
public class ClassListViewOnSetupHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView textView_classname;
public Button delete_button_classsetup;
public ClassListViewOnSetupHolder(View itemView) {
super(itemView);
textView_classname = itemView.findViewById(R.id.textView_classname);
delete_button_classsetup = itemView.findViewById(R.id.delete_button_classsetup);
itemView.setOnClickListener(this);
delete_button_classsetup.setOnClickListener(this);
textView_classname.setOnClickListener(this);
}
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(), "position = " + getAdapterPosition(), Toast.LENGTH_SHORT).show();
Log.i("Removed", "pressed");
if(view.equals(delete_button_classsetup)){
removeAt(getLayoutPosition());
Log.i("dbDel", "Successful");
}
}
}
The removeAt()
method
public void removeAt(int position){
demeaSQL.deleteAClass(classesBean);
listClasses.remove(position);
mRecyclerView.removeViewAt(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, listClasses.size());
notifyDataSetChanged();
if (demeaSQL != null) {
StringBuilder sb = new StringBuilder();
for (ClassesBean c : demeaSQL.getAllClasses()) {
sb.append(" ClassName= " + c.getClasses_name() + " ClassItemIndex= " + c.getClasses_item_index());
sb.append("\n");
}
Log.i("dbContent", sb.toString());
}
}
SQLDatabase Delete Function.
public void deleteAClass(ClassesBean aClass){
SQLiteDatabase db =this.getWritableDatabase();
db.delete(TABLE_CLASSES,COLUMN_CLASSES_ID + "=?",
new String[]{String.valueOf(aClass.getId())});
db.close();
}
create classes_table sql query
private String CREATE_CLASSES_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_CLASSES + "("
+ COLUMN_CLASSES_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + COLUMN_CLASS_ITEM_INDEX + " NUMBER,"
+ COLUMN_CLASSES_NAME + " VARCHAR," + COLUMN_CLASSES_CODENAME + " VARCHAR, " + COLUMN_CLASSES_SECTIONS + " VARCHAR," + COLUMN_CLASSES_TEACHERS
+ " VARCHAR," + COLUMN_CLASSES_STUDENTS + " VARCHAR" + ")";
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(CREATE_USER_TABLE);
sqLiteDatabase.execSQL(CREATE_SCHOOL_TABLE);
sqLiteDatabase.execSQL(CREATE_CLASSES_TABLE);
}
Here is my ClassesBean Class.
public class ClassesBean {
private int id;
private int classes_item_index;
private String classes_name;
private String classes_codename;
private String classes_sections;
private String classes_teachers;
private String classes_students;
public int getClasses_item_index() {
return classes_item_index;
}
public void setClasses_item_index(int classes_item_index) {
this.classes_item_index = classes_item_index;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getClasses_name() {
return classes_name;
}
public void setClasses_name(String classes_name) {
this.classes_name = classes_name;
}
public String getClasses_codename() {
return classes_codename;
}
public void setClasses_codename(String classes_codename) {
this.classes_codename = classes_codename;
}
public String getClasses_sections() {
return classes_sections;
}
public void setClasses_sections(String classes_sections) {
this.classes_sections = classes_sections;
}
public String getClasses_teachers() {
return classes_teachers;
}
public void setClasses_teachers(String classes_teachers) {
this.classes_teachers = classes_teachers;
}
public String getClasses_students() {
return classes_students;
}
public void setClasses_students(String classes_students) {
this.classes_students = classes_students;
}
}