2016-06-15 10 views
-2

meine Anforderung ist es, lokale Benachrichtigung zu generieren, wenn die aktuelle Zeit mit den Werten in der Datenbank übereinstimmt.Aber jetzt ist das Problem, dass wenn ich auf die Benachrichtigung klicke, sollte ich zu den spezifischen Produktdetails mit die Produkt-IDLokale Benachrichtigung in Android aus der Datenbank

Ich habe die Benachrichtigung generiert, aber wie kann ich den Produkttitel/die ID auf die Produktdetailseite bekommen.

-Code ----------------

for (int i=0;i < alertList.size();i++) { 
       Random random = new Random(); 
       int m = random.nextInt(9999 - 1000) + 1000; 
       msg=alertList.get(i).getProf_name()+" have to take "+alertList.get(i).getMed_name()+"                       ;"+alertList.get(i).getMed_id(); 
       Log.d("MediMSg",""+msg); 
       Log.d("MediMSg",""+msg); 
       Intent notificationIntent = new Intent(context, MedicineNotificationActivity.class); 
       notificationIntent.putExtra("pushmsg",msg); 
       TaskStackBuilder stackBuilder = TaskStackBuilder.create(context); 
       stackBuilder.addParentStack(MedicineNotificationActivity.class); 
       stackBuilder.addNextIntent(notificationIntent); 
       PendingIntent pendingIntent = stackBuilder.getPendingIntent(100, PendingIntent.FLAG_UPDATE_CURRENT); 
       NotificationCompat.Builder builder = new NotificationCompat.Builder(context); 
       Notification notification = builder.setContentTitle("Test") 
         .setContentText(msg) 
         .setTicker("Notification from Test") 
         .setSmallIcon(getNotificationIcon()) 
         .setPriority(Notification.PRIORITY_MAX) 
         .setAutoCancel(true) 
         .setColor(0x0091ea) 
         .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) 
         .setContentIntent(pendingIntent).build(); 

       NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
       notificationManager.notify(m,notification); 
       Log.d("Random",""+m); 
      } 

Antwort

0

Wenn Sie die Meldung generieren, aber das Produkt Titel/id in der Absicht, als Statisten. Dann in Ihrer Aktivität, die durch einen Klick auf die Benachrichtigung gestartet wird. Sie können auf diese Extras zugreifen.

Sie können ein Array außerhalb der Schleife erstellen, wenn Sie mehrere IDs haben, wie folgt aus:

int[] ids = new int[alertList.size()]; 

Dann in der Schleife durchlaufen und die ID für jede auf ihre jeweiligen Indizes gesetzt.

for (int i=0;i < alertList.size();i++) { 
    ids[i] = YOUR_ID; 
    //OTHER Code 
} 

Schließlich setzen Extra wie folgt aus:

notificationIntent.putExtra("ids", ids); 
+0

Ich habe gerade gebucht mein code..How kann ich die ID erhalten auf Klicken auf die Benachrichtigung – avik

+0

die ID der Absicht wie folgt hinzu: 'notificationIntent .putExtra ("id", YOUR_ID); ' –

+0

Ja, ich habe das gemacht, aber es gibt dieselbe ID zurück wie die letzte. Wie es in der for-Schleife ist. – avik