2012-06-26 71 views
1

我想在状态栏的通知栏中放两个按钮。当然,它们在用户触及扩展它们之前不会出现。我已经使用RemoteViews为我的通知创建了自定义布局,但我不确定是否可以根据当前代码结构获取对它们的引用。在状态栏上放置按钮

@Override 
public void onMessage(Context context, Intent intent) { 
      Log.w("C2DMReceiver", 
      "Message Received, this is the message with no payload"); 
    Bundle extras = intent.getExtras(); 

    if (extras != null) { 
     String[] payload = new String[3]; 
     payload[0] = (String) extras.get("payload"); 
     payload[1] = (String) extras.get("payload2"); 
     SharedPreferences sharedP = Prefs.get(this); 
     boolean inApp = sharedP.getBoolean("currentlyInApp", true); 
     if (!inApp) { 
      createNotification(context, payload); 
     } 

    } 
} 

public void createNotification(Context context, String[] payload) { 
    SharedPreferences sharedP = Prefs.get(context); 
    boolean needsToLogin = sharedP 
      .getBoolean("loginFromNotification", true); 

    Log.w("C2DMReceiver", "createNotification called"); 

    NotificationManager notificationmanager = (NotificationManager) context 
      .getSystemService(Context.NOTIFICATION_SERVICE); 

    Intent notificationIntent = new Intent(this, WebViewActivity.class); 
    Intent notificationIntent2 = new Intent(this, UniteActivity.class); 
    PendingIntent pIntent; 
    if (needsToLogin) { 
     pIntent = PendingIntent.getActivity(this, 0, notificationIntent2, 
       PendingIntent.FLAG_CANCEL_CURRENT); 

    } else { 
     pIntent = PendingIntent.getActivity(this, 0, notificationIntent, 
       PendingIntent.FLAG_CANCEL_CURRENT); 
    } 

    // Compatibility builder 
    NotificationCompat.Builder notification = new NotificationCompat.Builder(
      context); 
    RemoteViews remote = new RemoteViews(getPackageName(),R.layout.notification); 


    //Button okButton = (Button) findViewById(R.layout.notification); 

    notification.setAutoCancel(false); 
    notification.setContent(remote); 
    notification.setContentIntent(pIntent); 
    notification.setWhen(System.currentTimeMillis()); 
    notification.setTicker(payload[0]); 
    notification.setSmallIcon(R.drawable.default1); 
    notification.setContentTitle(payload[1]); 
    notification.setContentText(payload[0]); 



    long duration[] = { 100, 300, 100 }; 
    notification.setVibrate(duration); 

    notificationmanager.notify(0, notification.getNotification()); 
} 

onMessage是一种从Google C2DM库中提取的方法,其中通过从谷歌收到的意图生成通知。没有视图,我怎样才能使用findViewById()获得对我的按钮的引用?或者一些其他手段

回答