2013-08-30 86 views
0

我想用按鈕刪除數據庫中的單個播放器。無法刪除sqlite的數據

save.setOnClickListener(new OnClickListener(){ 

      public void onClick(View v) { 

       db.addContact(new PlayerData(name,score)); 
       Log.d("Insert: ", "Inserting .."); 

      } 
     }); 



      load.setOnClickListener(new OnClickListener(){ 

       public void onClick(View v) { 

        thedb = (ArrayList<PlayerData>) db.getAllContacts(); 
        String showName = db.getContact(8).getName(); 
        int showScore = db.getContact(8).getscore(); 
        saved.setText("Player Name: "+showName+" Player Score: "+showScore); 

       } 
      }); 


      delete.setOnClickListener(new OnClickListener(){ 

       public void onClick(View v) { 

        db.deleteContact(); 


       } 
      }); 

但是,在刪除按鈕時,db.deletecontact()上顯示錯誤。

我不知道如何刪除它,因爲我的一個朋友剛給了我數據庫管理器的代碼。

這是來自DatabaseManager的片段。

public void deleteContact(PlayerData contact) { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    db.delete(TABLE_CONTACTS, KEY_ID + " = ?", 
      new String[] { String.valueOf(contact.getID()) }); 
    db.close(); 
} 

db.deleteContact();需要一個參數或參數,但我不知道該放什麼。請幫忙。

回答

1

您需要返回PlayerData對象。您在加載clickListener中獲得其中的一個。

db.deleteContact(db.getContact(<entry number of player>)); 

這應該爲您提供PlayerData對象作爲deleteContact方法的參數傳遞。

希望這有助於

+0

最後我得到它的工作。但是,當我從索引1加載聯繫人並將其顯示在文本視圖中,並且我決定使用刪除按鈕刪除它時,應用程序強制停止。爲什麼會發生這種情況? – Jeongbebs

+0

需要這個錯誤來解決它。這是一個SQLException嗎?您需要確保PlayerData對象存在。 –

+0

需要幫助!突然,當我點擊加載按鈕強制停止並說: 08-30 18:21:33.465:E/AndroidRuntime(597):android.database.CursorIndexOutOfBoundsException:索引0請求,大小爲0 08- 30 18:21:33.465:E/AndroidRuntime(597):\t at com.example.simplegame.TotalResults $ 2.onClick(TotalResults.java:53) 但logcat顯示器顯示它正在插入。請幫忙! – Jeongbebs

0

如負載按鈕,單擊您傳遞接觸的指數一樣

db.getContact(8).getscore(); 

與此相同,我認爲你應該在這個階段也像

db.deleteContact(7); //index of 7th contact