2016-04-06 5 views
0

Ich habe zuerst alle Antworten versucht, die im Stapelüberlauf erwähnt wurden, aber keine funktionierte mit meiner Anwendung, ich weiß, dass es einfach ist, aber ich kann nicht herausfinden, warum es nicht ist Arbeiten. so sah ich mit dir meinen Code zu teilen, um mir dabei zu helfen. ich laufe auf API 22.Text und Bild einer Benachrichtigung an eine andere Aktivität bei Klickereignis übergeben

Dies ist die activity, die die textView enthält, um den Text von der Benachrichtigung zu erhalten.

public class EventDetails extends AppCompatActivity { 
public static TextView txtDet; 
public String strdet; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    onNewIntent(getIntent()); 
    setContentView(R.layout.activity_event_details); 
    txtDet = (TextView) findViewById(R.id.txtDetail); 
    Intent MyIntent = getIntent(); 
    strdet = MyIntent.getStringExtra("txtDetails"); 

    txtDet.setText(strdet); 



} 

i verwendet getStringExtra einen Text zu übergeben, wenn auf Kalendertag klicken und es funktioniert gut, so will ich das gleiche textView zum Empfangen von Benachrichtigungstext verwenden, ich nicht habe ein Problem in einem anderen textView verwenden, und bei Gleichzeitig möchte ich eine eindeutige image für jede Benachrichtigung erhalten.

und das ist die Meldung activity, i AlertReceiver genannt

public class AlertReceiver extends BroadcastReceiver { 


    @Override 
    public void onReceive(Context context, Intent intent) { 


     int notificationId = intent.getIntExtra("id", -1); 
     switch(notificationId){ 
      case 1: 
       createNotification(context, "title1", "event1", "event of today"); 
       break; 
      case 2: 
       createNotification(context, "title2", "event2", "event of today"); 
       break; 
      case 3: 
       createNotification(context, "title3", "event3", "event of today"); 
       break; 
      case 4: 
       createNotification(context, "title4", "event4", "event of today"); 
       break; 
     } 


      } 

    public void createNotification(Context context, String msg, String msgText,String msgAlert){ 

     PendingIntent notificIntent = PendingIntent.getActivity(context, 0, new Intent(context, EventDetails.class), 0); 

     NotificationCompat.Builder mBuilder=new NotificationCompat.Builder(context) 
       .setSmallIcon(R.drawable.not) 
       .setContentTitle(msg) 
       .setTicker(msgAlert) 
       .setContentText(msgText); 
     //intent to fire when notification clicked on 
     mBuilder.setContentIntent(notificIntent); 
     //how the person will be notified 
     mBuilder.setDefaults(NotificationCompat.DEFAULT_SOUND); 
     //cancel notification when clicked in the taskbar 
     mBuilder.setAutoCancel(true); 
     NotificationManager mNotificationManager= (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE); 

      mNotificationManager.notify(0, mBuilder.build()); 




    } 
} 

irgendwelche Vorschläge?

Antwort

1

Innerhalb create Benachrichtigungsmethode fügen Sie die Daten zu Absicht hinzu. Sie haben gerade beim Klick auf die Benachrichtigung angegeben, welche Aktivität aufgerufen werden soll.

So:

PendingIntent notificIntent = PendingIntent.getActivity(context, 0, 
     new Intent(context, EventDetails.class).putExtra("txtDetails", yourMsg), 0); 
+0

JA, löste dies mein Problem, Dank viel, auch jetzt genau ich verstanden, wie Absicht funktioniert, aber ich nur putStringExtra zu putExtra – zyz82

+0

was Bild bearbeitet? ich meine die .setSmallIcon (R.drawable.not) – zyz82

Verwandte Themen