У меня есть ListView
. Я добавляю одну строку в базу данных sqlite, проверяя ее. (CheckBox
) В то же время мне нужно удалить строку, которую я снял. Мне нужен идентификатор строки, которая хранится в моей таблице, из-за чего я могу удалить строку. Как мне это сделать ? Это мой CheckBox
справка на код: Adapter
.Как удалить определенную строку в Sqlite?
public class MainVacancyAdapter extends ArrayAdapter {
private List<VacancyModel> vacancyModelList;
private int resource;
private LayoutInflater inflater;
ArrayList<Boolean> isSelected;
SQLHelper sqlHelper;
public MainVacancyAdapter(Context context, int resource, List<VacancyModel> objects) {
super(context, resource, objects);
vacancyModelList = objects;
this.resource = resource;
sqlHelper = new SQLHelper(getContext());
inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
isSelected = new ArrayList<>(vacancyModelList.size());
for (int i = 0; i < vacancyModelList.size(); i++) {
isSelected.add(false);
}
}
//Finding textViews and inserting data into them
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = inflater.inflate(resource, null);
holder.tvHeader = (TextView) convertView.findViewById(R.id.tvHeader);
holder.tvProfileName = (TextView) convertView.findViewById(R.id.tvProfileName);
holder.tvSalary = (TextView) convertView.findViewById(R.id.tvSalary);
holder.tvPostCr = (TextView) convertView.findViewById(R.id.tvPostCr);
//holder.tvBody = (TextView) convertView.findViewById(R.id.tvBody);
holder.cbxFav = (CheckBox) convertView.findViewById(R.id.cbxFav);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
holder.cbxFav.setOnCheckedChangeListener(null);
}
holder.tvHeader.setText(vacancyModelList.get(position).getHeader());
holder.tvProfileName.setText(vacancyModelList.get(position).getProfileName());
holder.tvSalary.setText(vacancyModelList.get(position).getSalary());
holder.tvPostCr.setText(vacancyModelList.get(position).getPostCreated());
//holder.tvBody.setText(vacancyModelList.get(position).getBody());
holder.cbxFav.setChecked(isSelected.get(position));
holder.cbxFav.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
//inserting the data into Favourite Table in sql
isSelected.set(position, true);
sqlHelper.createFavouriteTable(vacancyModelList.get(position));
//Toast.makeText(getContext(), "Added to favourite", Toast.LENGTH_SHORT).show();
} else {
isSelected.set(position, false);
sqlHelper.deleteFromFavouriteDatabase(position);
//Toast.makeText(getContext(), "Deleted from favourite", Toast.LENGTH_SHORT).show();
}
}
});
return convertView;
}
static class ViewHolder {
TextView tvHeader;
TextView tvProfileName;
TextView tvSalary;
TextView tvPostCr;
TextView tvBody;
CheckBox cbxFav;
}
}
метод SQLHelper class
public void deleteFromFavouriteDatabase(int rowID) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(FAVOURITE.TABLE_NAME, FAVOURITE.KEY_ID + " = " + rowID, null);
db.close();
}
Показать полный адаптер кода класса – Vickyexpert
Вы проходя весь объект VacancyModel для createFavouriteTable методы? – Vickyexpert
@ Vickyexpert yes – uniq