2011-06-21 30 views
-1

它必須是一些簡單的整數減去一個數....針對Android不工作

void CheckQty(long rowId, String manufacturer, String expires, String value, String category, String image, String valueother, Integer qty) { 
    // TODO Auto-generated method stub 
    if(qty<=1){ 
      deleteNote(rowId); 
    }else{ 
     qty = Math.abs(qty)-1; 
     updateNote(rowId, manufacturer, expires, value, category, image, valueother, qty); 
    } 
} 

更新注意:

public boolean updateNote(long rowId, String manufacturer, String expires, String value, String category, String image, String valueother, Integer qty) { 

    ContentValues args = new ContentValues(); 
    args.put(KEY_MANUFACTURER, manufacturer); 
    args.put(KEY_EXPIRES, expires); 
    args.put(KEY_VALUE, value); 
    args.put(KEY_VALUE_OTHER, valueother); 
    args.put(KEY_CATEGORY, category); 
    args.put(KEY_QTY, qty); 
    args.put(KEY_IMAGE, image); 
    //args.put(KEY_BODY, body); 

    return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId, null) > 0; 
} 

初始值是從數據庫中取出並傳遞給此功能,它可以是用戶放入的任何數字,但它似乎並不是什麼數字,結果總是6

這隻會將「數量」更改爲6

有幫助嗎?

+0

什麼是初始值?還有,你的updateNote(...)函數中有什麼? –

+0

是的,在執行qty = Math.abs(qty)-1之前和之後,qty的值是多少?代碼行? –

+0

這不是一個非常普遍的問題。嘗試花一些時間調試,而不是要求每一個出錯的問題都可以爲你解決 - 你會通過這種方式學到更多的東西;) – dimsuz

回答

1

因爲您已經刪除了數字,所以我也擺脫了Math.abs調用。0將行更改爲qty = qty-1。此外,如果您只是更新數量列,則不需要同時更新所有其他值。

+0

原來我需要改變我得到'qty'的方式:Integer qty = note.getColumnIndexOrThrow(NotesDbAdapter.KEY_QTY); to:Integer qty = Integer.parseInt(mQtyText.getText()。toString()); –

+0

謝謝大家的幫助/探測板 –