По какой-то причине перестала работать эта строка java db.exe cSQL java ("DELETE FROM pizzaOrders WHERE _id IN (" + id + ")");
хотя и работала раньше, но я не могу вспомнить, что я изменил, а затем перестала работать. Вот уже час пытаюсь понять, в чем дело. В итоге понял, что эта строчка не банально, но при этом проверяется на синтаксис, а не на logi c. То есть, если что-то написано неправильно, это выдаст синтаксическую ошибку, но не проверяет logi c, то есть когда я хочу удалить строку, ничего не происходит, даже когда я пытаюсь удалить строку с индексом -10 (хотя индексы go с 0) ничего не выходит и программа продолжает работать так, как будто этой строки нет. И если индекс правильный, программа также не выполняет эту строку. Вот код активности:
public class AdminPage extends Activity {
private static AdapterAdminPage adapterAdminPage;
private RecyclerView recyclerView;
private static ArrayList<Integer> id;
private static ArrayList<String> name;
private static ArrayList<String> phone;
private static ArrayList<String> address;
private static ArrayList<String> pizzas;
private TextView t;
WorkBD workBD;
private Cursor cursor;
private static boolean b;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.admin_page);
workBD = new WorkBD(this);
}
public void Refresh(View v){
getItemForAdapter();
}
private void getItemForAdapter(){
id = new ArrayList<>();
name = new ArrayList<>();
address = new ArrayList<>();
phone = new ArrayList<>();
pizzas = new ArrayList<>();
SQLiteDatabase db = workBD.getReadableDatabase();
cursor = db.query(WorkBD.TABLE_CONTACTS, null,null,null,null,null,null);
cursor.moveToFirst();
do{
try {
id.add(cursor.getInt(cursor.getColumnIndex(WorkBD.KEY_ID)));
String pizza1 = "Пепперони: " + Integer.toString(cursor.getInt(cursor.getColumnIndex("pizza1"))) + "\n";
String pizza2 = "Кальцоне: " + Integer.toString(cursor.getInt(cursor.getColumnIndex("pizza2"))) + "\n";
String pizza3 = "Четыре сезона: " + Integer.toString(cursor.getInt(cursor.getColumnIndex("pizza3"))) + "\n";
String pizza4 = "Четыре сыра: " + Integer.toString(cursor.getInt(cursor.getColumnIndex("pizza4"))) + "\n";
String pizza5 = "Мексиканская: " + Integer.toString(cursor.getInt(cursor.getColumnIndex("pizza5"))) + "\n";
name.add(cursor.getString(cursor.getColumnIndex(WorkBD.KEY_NAME)));
phone.add(cursor.getString(cursor.getColumnIndex(WorkBD.KEY_NUMBER)));
address.add(cursor.getString(cursor.getColumnIndex(WorkBD.KEY_ADDRESS)));
pizzas.add(pizza1 + pizza2 + pizza3 + pizza4 + pizza5);
}
catch (Exception e){
t = findViewById(R.id.NoOrders);
t.setText("ПОКА \n НЕТ \n ЗАКАЗОВ \n :/ \n \n \n");
}
}
while (cursor.moveToNext());
if(b){
adapterAdminPage.refreshData(name,phone,address,pizzas);
b = false;
}
else
setAdapterAdminPage();
}
private void setAdapterAdminPage(){
recyclerView = findViewById(R.id.AdminRecyclerView);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
adapterAdminPage = new AdapterAdminPage(name,phone,address,pizzas);
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(itemTouchHelperCallback);
recyclerView.addItemDecoration(itemTouchHelper);
itemTouchHelper.attachToRecyclerView(recyclerView);
recyclerView.setAdapter(adapterAdminPage);
}
private final ItemTouchHelper.Callback itemTouchHelperCallback = new ItemTouchHelper.Callback() {
@Override
public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
return makeMovementFlags(ItemTouchHelper.END, ItemTouchHelper.END);
}
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
SQLiteDatabase db = workBD.getReadableDatabase();
int id = (int)viewHolder.getAdapterPosition()-10;
Log.i(TAG, Integer.toString(id));
db.execSQL("DELETE FROM pizzaOrders WHERE _id IN (" + id + ")");
Log.i(TAG, "DELETE FROM pizzaOrders WHERE _id IN (" + id + ")");
b = true;
getItemForAdapter();
Log.i(TAG, "onSwiped");
}
};
}
Bd java
public class WorkBD extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 4;
public static final String DATABASE_NAME = "pizzaDb.db";
public static final String TABLE_CONTACTS = "pizzaOrders";
public static final String KEY_ID = "_id";
public static final String KEY_NAME = "name";
public static final String KEY_NUMBER = "number";
public static final String KEY_ADDRESS = "address";
public static final String KEY_PIZZA1 = "pizza1";
public static final String KEY_PIZZA2 = "pizza2";
public static final String KEY_PIZZA3 = "pizza3";
public static final String KEY_PIZZA4 = "pizza4";
public static final String KEY_PIZZA5 = "pizza5";
public WorkBD(@Nullable Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_CONTACTS + " (" + KEY_ID + " INTEGER PRIMARY KEY, " + KEY_NAME + " TEXT, " + KEY_NUMBER + " TEXT, "+ KEY_ADDRESS + " TEXT, " + KEY_PIZZA1 + " TEXT, " + KEY_PIZZA2 + " TEXT, " + KEY_PIZZA3 + " TEXT, " + KEY_PIZZA4 + " TEXT, " + KEY_PIZZA5 + " TEXT "+ " )");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
onCreate(db);
}
}