我有一个通知栏,当我点击它时,会启动一个具有相同数据的新活动(一个字符串数组)。我有一个问题从onReceive.class传递数据到新的Activity(通知)。当我点击时,我看到了新活动,但是在使用nullPointerE时崩溃了。
not1 [x]是一个字符串数组
我的代码
AlarmReceiver:
Intent notificationIntent = new Intent("com.example.myapp", null, context, Notify.class);
notificationIntent.putExtra("notify", not1[x]);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
通知:
Bundle b = getIntent().getExtras();
if (b != null) {
Intent intent = getIntent();
String[] notify2 = b.getStringArray("notify");
textView1.setText("notify2");
答案 0 :(得分:1)
试试这个
String[] getArray=getIntent().getStringArrayExtra("notify");
在not1 [x]之间是一个不是数组的字符串。
private NotificationManager mNotificationManager;
private int SIMPLE_NOTFICATION_ID;
mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notifyDetails = new Notification(R.drawable.somepngfile,"some text",System.currentTimeMillis());
Context context = getApplicationContext();
CharSequence contentTitle = "title";
CharSequence contentText = "ontent";
Intent notifyIntent = new Intent(thisclass.this,nextclass.class);
notifyIntent.putExtra("Value", finalresponse[1]+","+finalresponse[2]+","+finalresponse[3]);
PendingIntent intent =
PendingIntent.getActivity(BackService.this, 0,
notifyIntent, android.content.Intent.FLAG_ACTIVITY_NEW_TASK);
notifyDetails.setLatestEventInfo(context, contentTitle, contentText, intent);
notifyDetails.defaults|= Notification.DEFAULT_SOUND;
notifyDetails.defaults|= Notification.DEFAULT_LIGHTS;
notifyDetails.defaults|= Notification.DEFAULT_VIBRATE;
notifyDetails.defaults|= Notification.FLAG_AUTO_CANCEL;
notifyDetails.flags |= Notification.FLAG_AUTO_CANCEL | Notification.FLAG_SHOW_LIGHTS;
mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails);
下一堂课
Intent i = getIntent();
i.getStringExtra("Value");
String[] response=i.getStringExtra("Value").split(",");
答案 1 :(得分:0)
这个not1[x]
是一个字符串数组吗?它看起来像一个String Array的元素,实际上是一个String。
答案 2 :(得分:0)
只需在 AlarmReceiver 类中替换以下代码即可。它对我有用......
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
如果我们在接收方使用0而不是 PendingIntent.FLAG_UPDATE_CURRENT 标志,即getIntent()。getExtras()不会动态更新数据,每次都分配第一个传递的数据.... / p>