3

文字列配列をAlarmReceiver.classからNotify.classに渡す必要がありますが、文字列は常に「null」です。さて、AlarmReceiver内のインテントに関する問題はありますか?

public class AlarmReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
[...]
Intent notificationIntent = new Intent("com.example.myapp", null, context, Notify.class);
        notificationIntent.putExtra("notify", not1[x]);
        PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);

クラスに通知:

@Override
    public void onCreate(Bundle savedInstanceState){ 
      super.onCreate(savedInstanceState);
Intent notificationIntent = getIntent();
      String[] message = notificationIntent.getStringArrayExtra("notify");
Toast toast6=Toast.makeText(this,""+message,Toast.LENGTH_LONG);
        toast6.show();
4

1 に答える 1

7

2つの異なる方法を使用しています...

  1. ここでは、1つの文字列を使用しています。

    notificationIntent.putExtra("notify", not1[x]); // Pass one String
    

    あなたはこれを読むべきです"notify"

    String message = notificationIntent.getStringExtra("notify");
    
  2. 文字列の配列を渡したい場合は、次を使用します。

    notificationIntent.putExtra("notify", not1); // Pass array of Strings
    

    あなたはこれを読むべきです:

    String[] message = notificationIntent.getStringArrayExtra("notify");
    

違いがわかりますか?

于 2012-12-21T19:50:45.537 に答える