2013-12-08 4 views
0

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

Чтобы позвонить в другой класс использования

Но затмение дает мне «Не удается сделать статическую ссылку на нестатической метод ShowNot (INT) от типа уведомления» Почему? Как я могу исправить?

ответ

1

MostraNotifica (int Id) не static. Вы должны сделать что-то вроде

Notifica notifica = new Notifica(context); 
notifica.MostraNotifica(Notifica.NOTIFICA); 
+0

Спасибо, это работает! –

1

Вы вызываете нон статический метод (public void MostraNotifica(int Id)), как если бы это был статический метод.

Я хотел бы сделать класс синглетом, так что вам нужно только его инициализировать один раз, но вы можете использовать методы, как вам нравится.

Образец синглтон:

public enum Notifica { 
    INSTANCE; 

    NotificationManager mNotificationManager; 
    NotificationCompat.Builder notificationBuilder; 
    Context context; 

    public void init(Context context) { 
     if (mNotificationManager == null) { 
      this.context = context; 
      mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
      // Do any other initializations you need here 
     } 
    } 

public void MostraNotifica (int Id) { 

    switch(Id) 
    { 
    case NOTIFICA: 
     notificationBuilder.setContentTitle("Text1"); 
     notificationBuilder.setContentText("Text1"); 
     mNotificationManager.notify(NOTIFICA, notificationBuilder.build()); 
     break; 
    case NOTIFICA2: 
     notificationBuilder.setContentTitle("Text2"); 
     notificationBuilder.setContentText("Text2"); 
     mNotificationManager.notify(NOTIFICA2, notificationBuilder.build()); 
     break; 
    } 
    notificationBuilder.setWhen(System.currentTimeMillis()); 
    notificationBuilder.setSmallIcon(R.drawable.ic_launcher); 
    notificationBuilder.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_LIGHTS); 
} 

Вы инициализировать и использовать этот синглтон так:

Notifica.INSTANCE.init(this); 
Notifica.INSTANCE.MostraNotifica(1); 
Смежные вопросы