2

2 つのステータスバー通知を作成する必要があります。最初の通知アイコンをクリックすると、いくつかのデータ (ex.activity1) が表示されます。2 番目の通知アイコンをクリックすると、別のデータ (ex.activity2) が表示されます。うまく作成できましたが、データを表示できませんでした。

私のコード:

package com.collabera.labs.sai;

import java.util.ArrayList;

import android.R.string;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class SimpleNotification extends Activity {

    private NotificationManager mNotificationManager;
    private int SIMPLE_NOTFICATION_ID_A = 0;
    private int SIMPLE_NOTFICATION_ID_B = 1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        Button start = (Button) findViewById(R.id.notifyButton);        
        //Button cancel = (Button)findViewById(R.id.cancelButton);

        start.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // display A
                displayNotification("Extra for A", "This is A", "Some text for activity A", MyActivityA.class, SIMPLE_NOTFICATION_ID_A);
                // display B
                displayNotification("Extra for B", "This is B", "Some text for activity B", MyActivityB.class, SIMPLE_NOTFICATION_ID_B);
            }
        });
    }

    private void displayNotification(String extra, String contentTitle, String contentText, Class<?> cls, int id) {     
        Notification notifyDetails = new Notification(R.drawable.icon, "New Alert!", System.currentTimeMillis());
        Intent intent = new Intent(this, cls);
        Bundle b=new Bundle();
        b.putString("extra", extra);
        intent.putExtras(b);
        PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(), id, intent, PendingIntent.FLAG_ONE_SHOT);
        notifyDetails.setLatestEventInfo(getApplicationContext(), contentTitle, contentText, contentIntent);
        mNotificationManager.notify(id, notifyDetails);

}

}

MyActivityA:

TextView tv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.sub);
    tv=(TextView)findViewById(R.id.tv);
    Bundle b = getIntent().getExtras();

    String value = b.getString("extra");
    tv.setText(value);

これのエラーは何ですか..テキストが表示されませんでした..

4

1 に答える 1

0

これを試してください: 最初のアクティビティ:

int requestID = (int) System.currentTimeMillis(); Intent intent = new Intent(this, NotificationReceiverActivity.class); intent.putExtra("data1", "My Data 1"); intent.putExtra("data2", "My Data 2"); PendingIntent pIntent = PendingIntent.getActivity(this, requestID, intent, 0);

最初のアクティビティから呼び出された 2 番目のアクティビティ

これを oncreated メソッドに入れます

Bundle extras = getIntent().getExtras();
if(extras != null){
    String data1 = extras.getString("data1");
    String data2 = extras.getString("data2");
    Log.e("Ddata1" + data1, data2);
}
于 2013-07-31T01:20:30.130 に答える