2013-03-25 4 views
0

Я пытаюсь сделать мое приложение создать уведомление, но этот код дает мне ошибку компиляции:Получение ошибки при попытке сделать уведомление о

public void makeRing(Context context, boolean notify) 
    { 

     if (notify) 
     { 
      NotificationCompat.Builder mBuilder = 
        new NotificationCompat.Builder(context) 
        //.setSmallIcon(R.drawable.notification_icon) 
        .setContentTitle("My notification") 
        .setContentText("Hello World!"); 
      // Creates an explicit intent for an Activity in your app 
      Intent resultIntent = new Intent(context, MainActivity.class); 

      // The stack builder object will contain an artificial back stack for the 
      // started Activity. 
      // This ensures that navigating backward from the Activity leads out of 
      // your application to the Home screen. 
      TaskStackBuilder stackBuilder = TaskStackBuilder.create(context); 
      // Adds the back stack for the Intent (but not the Intent itself) 
      stackBuilder.addParentStack(MainActivity.class); 
      // Adds the Intent that starts the Activity to the top of the stack 
      stackBuilder.addNextIntent(resultIntent); 
      PendingIntent resultPendingIntent = 
        stackBuilder.getPendingIntent(
         0, 
         PendingIntent.FLAG_UPDATE_CURRENT 
        ); 
      mBuilder.setContentIntent(resultPendingIntent); 
      NotificationManager mNotificationManager = 
       (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
      // mId allows you to update the notification later on (first number) 
      mNotificationManager.notify(5954, mBuilder.build()); 

     } 

Это код взят прямо с сайта для разработчиков Android. Ошибки находятся в строке, которая говорит «TaskStackBuilder stackBuilder = TaskStackBuilder.create (context);», где create подчеркнуто, и он говорит: «метод create (Context) не определен для типа TaskStackBuilder».

Кроме того, в последней строке build() подчеркнуто, и он говорит: «Метод build() не определен для типа NotificationCompat.Builder.

Как это решить?

ответ

0

Возможно, вы, вероятно, не загрузили нужную версию библиотеки поддержки. Вы можете увидеть HERE все версии и узнать, какой из них вам нужен.

Я считаю, что это самая последняя версия, которая содержит изменения в уведомлениях:

пакет поддержки, пересмотр 10 (август 2012)

Изменения для поддержки v4 библиотеки:

Added support for notification features introduced in Android 4.1 (API level 16) with additions to NotificationCompat. 

Но вы, наверное, можете скачать самую последнюю версию, просто чтобы быть уверенным.

+0

Я просто загружаю последнюю версию? – AggieDev

+0

Это должно сработать. – Eran

+0

Я так и сказал, что мой текущий Rev. для «Android Support Library» в Android SDK Manager равен 10, но у него все еще есть эта ошибка. – AggieDev

3

У меня была такая же проблема с использованием библиотеки поддержки. Кажется, что он не реализует эти методы. Вот код, который работает:

NotificationCompat.Builder builder = new NotificationCompat.Builder(this) 
     .setSmallIcon(R.drawable.ic_action_search) 
     .setContentTitle("New search") 
     .setContentText("Que hay de nuevo, viejo"); 
Intent resultIntent = new Intent(this, Temporal.class); 
TaskStackBuilder stackBuilder = TaskStackBuilder.from(this); 
stackBuilder.addParentStack(Temporal.class); 
stackBuilder.addNextIntent(resultIntent); 
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
builder.setContentIntent(resultPendingIntent); 
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
manager.notify(112, builder.getNotification()); 

Изменения

TaskStackBuilder stackBuilder = TaskStackBuilder.from(this); 

вместо

TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 

и

manager.notify(112, builder.getNotification()); 

вместо

manager.notify(112, mBuilder.build()); 

EDITED

Лучшее решение: Просто скачайте последнюю версию библиотеки поддержки Android.

Смежные вопросы