Как изменять записи в sqlite из ListView?
Таблица sqlite отображается при помощи listView. Как изменить "0" на другое число в нужной ячейке при помощи кнопок + и -?
ListAdapter
public ArrayList<Cigarettes> MainList;
public ArrayList<Cigarettes> StudentListTemp;
public ListAdapter.SubjectDataFilter studentDataFilter;
public ListAdapter(Context context, int id, ArrayList<Cigarettes> studentArrayList) {
super(context, id, studentArrayList);
this.StudentListTemp = new ArrayList<Cigarettes>();
this.StudentListTemp.addAll(studentArrayList);
this.MainList = new ArrayList<Cigarettes>();
this.MainList.addAll(studentArrayList);
}
@Override
public Filter getFilter() {
if (studentDataFilter == null) {
studentDataFilter = new ListAdapter.SubjectDataFilter();
}
return studentDataFilter;
}
public class ViewHolder {
TextView Name;
TextView Barcode;
EditText Quantity;
Button plus, minus;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ListAdapter.ViewHolder holder = null;
if (convertView == null) {
LayoutInflater layoutInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.custom_layout, null);
holder = new ListAdapter.ViewHolder();
holder.Name = (TextView) convertView.findViewById(R.id.name);
holder.Barcode = (TextView) convertView.findViewById(R.id.barcode);
holder.Quantity = (EditText) convertView.findViewById(R.id.quantity);
convertView.setTag(holder);
} else {
holder = (ListAdapter.ViewHolder) convertView.getTag();
}
Cigarettes cigarettes = StudentListTemp.get(position);
holder.Name.setText(cigarettes.getName());
holder.Barcode.setText(cigarettes.getBarcode());
holder.Quantity.setText(cigarettes.getQuantity());
return convertView;
}
private class SubjectDataFilter extends Filter {
@Override
protected FilterResults performFiltering(CharSequence charSequence) {
charSequence = charSequence.toString().toLowerCase();
FilterResults filterResults = new FilterResults();
if (charSequence != null && charSequence.toString().length() > 0) {
ArrayList<Cigarettes> arrayList1 = new ArrayList<Cigarettes>();
for (int i = 0, l = MainList.size(); i < l; i++) {
Cigarettes cigarettes = MainList.get(i);
if (cigarettes.toString().toLowerCase().contains(charSequence))
arrayList1.add(cigarettes);
}
filterResults.count = arrayList1.size();
filterResults.values = arrayList1;
} else {
synchronized (this) {
filterResults.values = MainList;
filterResults.count = MainList.size();
}
}
return filterResults;
}
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
StudentListTemp = (ArrayList<Cigarettes>) filterResults.values;
notifyDataSetChanged();
clear();
for (int i = 0, l = StudentListTemp.size(); i < l; i++)
add(StudentListTemp.get(i));
notifyDataSetInvalidated();
}
}
}
Database
public static final String TABLE_CIG="emp";
public static final String Table_Column_Name="name";
public static final String Table_Column_Barcode="barcode";
public static final String Table_Column_Quantity="quantity";
public Database(Context context)
{
super(context, "GoodsDatabase.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String tableEmp="create table "+TABLE_CIG+"("+Table_Column_Name+" TEXT, "+Table_Column_Barcode+" TEXT, "+Table_Column_Quantity+" TEXT)";
db.execSQL(tableEmp);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void insertData(String name, String barcode, String quantity)
{
SQLiteDatabase sqLiteDatabase=this.getWritableDatabase();
ContentValues values=new ContentValues();
values.put("name",name);
values.put("barcode",barcode);
values.put("quantity",quantity);
sqLiteDatabase.insert("emp",null,values);
}
public ArrayList fetchData()
{
ArrayList<String>stringArrayList=new ArrayList<String>();
String fetchdata="select * from emp";
SQLiteDatabase sqLiteDatabase=this.getReadableDatabase();
Cursor cursor=sqLiteDatabase.rawQuery(fetchdata, null);
if(cursor.moveToFirst()){
do
{
stringArrayList.add(cursor.getString(0));
stringArrayList.add(cursor.getString(1));
stringArrayList.add(cursor.getString(2));
} while (cursor.moveToNext());
}
return stringArrayList;
}
}
Ответы (1 шт):
Автор решения: Suleyman
→ Ссылка
воспользуйся методом sqLiteDatabase.update подробнее https://startandroid.ru/ru/uroki/vse-uroki-spiskom/75-urok-35-metody-query-i-delete-s-ukazaniem-uslovija.html

