2013-08-30 3 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. Вы получаете один из них в load 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) но дисплей логарифма говорит, что он вставляет. Пожалуйста помоги! – Jeongbebs

0

Как и кнопке загрузки нажмите вы передаете индекс контакта как

db.getContact(8).getscore(); 

То же, это я думаю, вы должны пройти в этом также как

db.deleteContact(7); //index of 7th contact 
Смежные вопросы