1

通知バーをクリックすると、同じデータ (文字列配列) で新しいアクティビティが開始されます。onReceive.class から新しいアクティビティ (通知) にデータを渡す際に問題があります。クリックすると新しいアクティビティが表示されますが、nullPointerE でクラッシュします。

not1[x] は文字列の配列です

私のコード

アラーム受信者:

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");
4

3 に答える 3

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(",");
于 2012-12-21T18:28:19.243 に答える
0

これnot1[x]は文字列配列ですか? 実際には文字列である文字列配列の要素のように見えます。

于 2012-12-21T20:41:29.030 に答える
0

以下のコードをAlarmReceiverクラスに置き換えるだけです。その作品は私のために...

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

PendingIntent.FLAG_UPDATE_CURRENTフラグの代わりに 0 を使用する場合、Receiver 側で、つまり getIntent().getExtras() はデータを動的に更新せず、毎回最初に渡されたデータを割り当てます....

于 2013-11-19T12:42:08.537 に答える