2016-07-13 4 views
-1

Во-первых, в моей ситуации нет ошибки, но любой ответ, когда я касаюсь контекстного меню «delete». Кажется, что компьютер остается не читаемым.Есть ответ во время получения данных из базы данных SQLite

getAmount Calss из DBHelper.java

public int getAmount(Integer id){ 
    int amount = 0; 
    SQLiteDatabase db=this.getReadableDatabase(); 
    Cursor res = db.rawQuery("SELECT id, amount FROM uselist WHERE id="+id,null); 
    amount=res.getInt(res.getColumnIndex(USELIST_COLUMN_AMOUNT)); 
    return amount; 
} 

Код выше getAmount использовали

@Override 
public boolean onContextItemSelected(MenuItem item){ 
    int itemId = item.getItemId(); 
    switch (itemId){ 
     case R.id.context_item1 : 
      Toast.makeText(this,"edit",Toast.LENGTH_SHORT).show(); 
      return true; 
     case R.id.context_item2 : 
      int amt=-mydb.getAmount(position); 
      Toast.makeText(this,"delete",Toast.LENGTH_SHORT).show(); 
      mydb.deleteUseList(position); 
      mydb.update("UPDATE uselist SET id = (id-1) WHERE id >"+ position+";"); 
      mydb.update("UPATE uselist SET balance = (balance+"+amt+") WHERE id>"+position+";"); 
      histories.clear(); // 
      finish(); 
      startActivity(getIntent()); 
      return true; 
    } 
    return super.onContextItemSelected(item); 
} 

Я думаю, что-то не так в 'Int АМТ = -mydb.getAmount (положение);' код или getAmount класс, так как удалить Toast не появляется.

+1

Почему вы использовали '-mydb' вместо' MyDB»?? – Jas

+0

@ Удалите, затем оставайтесь той же проблемой. Значок минус необходим для моей цели. – Jiwon

+0

@ Jiwon нужна определенная ясность по вашему вопросу. –

ответ

0

Попробуйте это:

public int getAmount(Integer id){ 
    int amount = 0; 
    SQLiteDatabase db=this.getReadableDatabase(); 

    Cursor res = db.rawQuery("SELECT id, amount FROM uselist WHERE id="+id,null); 

      // looping through all rows and setting value to variable 
      if (res.moveToFirst()) { 
       do { 
        amount=res.getInt(res.getColumnIndex(USELIST_COLUMN_AMOUNT)); 
       } while (res.moveToNext()); 
      } 

    return amount; 
    } 
+0

О, приложение продолжалось, но теперь приложение останавливается где-то после 'mydb.update ("UPDATE uselist SET id = (id-1) WHERE id>" + position + "; «);» И я не могу понять, почему мое приложение прошло ваше испытание. – Jiwon

+0

Является ли ваше приложение аварийным? – Jas

+0

Спасибо, я исправил UPATE для ОБНОВЛЕНИЯ. Приложение работает хорошо. Ваш пробный процесс заставил мое приложение работать, но не желаемую функцию. Я хочу, чтобы вы объяснили, как вы применили мое приложение. В чем была проблема в моем приложении? – Jiwon

 Смежные вопросы

  • Нет связанных вопросов^_^