2011-07-16 3 views
0

Je suis tryng pour définir une alarme par un identifiant de ligne dans la base de données. Voici mon code pour mettre l'inent en supplément mais ça me donne une erreur à putExtra.Comment créer cette intention putExtra?

public void setReminder(long taskId, Calendar when){ 
    Intent i = new Intent(mContext, OnAlarmReceiver.class); 
    i.putExtra(helper.getById(id), (long)taskId); 
} 

Voici mon curseur qui récupère l'ID de ma base de données.

} 
public Cursor getById(String id){ 
    String [] args = {id}; 

    return(getReadableDatabase() 
     .rawQuery("SELECT _id, title, descrip, taskdatetime, type FROM tasks WHERE _id = ?", args)); 
     } 
+0

quelle est l'erreur dans logcat? – Suchi

Répondre

1

Vous ne pouvez pas placer un curseur dans une intention. Vous devriez lire le curseur et en faire un propre type de données que vous pouvez transmettre en utilisant des intentions.

i.putExtra(helper.getById(id), (long)taskId); 

Cela n'a aucun sens non plus. Je suppose que votre curseur est réellement les données? Dans ce cas, helper.getById() devrait être le deuxième paramètre et taskId le premier paramètre.

2

putExtra() prend le nom (une chaîne) et la valeur réelle en tant qu'entrées. Je doute helper.getById(id) dans i.putExtra(helper.getById(id), (long)taskId); renvoie une chaîne.

Vérifiez que.

public Intent putExtra (String name, Bundle value) 

Paramètres:

  • name -> Le nom des données supplémentaires, avec le préfixe de package &
  • value -> La valeur de données Bundle.

Retours:

  • retourne le même objet Intent, pour enchaîner plusieurs appels en une seule déclaration.

Vérifiez ce lien

http://developer.android.com/reference/android/content/Intent.html#putExtra%28java.lang.String,%20android.os.Bundle%29

Hope I a pu aider.

Questions connexes