Java 要显示的切换通知

Java 要显示的切换通知,java,android,xml,Java,Android,Xml,根据具体情况,我将更改通知以显示,因此我编写了此代码 要在另一个类中调用它,请使用 但是eclipse告诉我“不能从类型通知中对非静态方法ShowNot(int)进行静态引用”为什么?如何修复?MostraNotifica(int-Id)不是静态的。你应该这样做 Notifica notifica = new Notifica(context); notifica.MostraNotifica(Notifica.NOTIFICA); 您正在调用一个非静态方法(public void Mostr

根据具体情况,我将更改通知以显示,因此我编写了此代码

要在另一个类中调用它,请使用

但是eclipse告诉我“不能从类型通知中对非静态方法ShowNot(int)进行静态引用”为什么?如何修复?

MostraNotifica(int-Id)
不是静态的。你应该这样做

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

您正在调用一个非静态方法(
public void MostraNotifica(int-Id)
),就好像它是一个静态方法一样

我会改为将类设为singletong,这样您只需要初始化它一次,但可以使用您喜欢的方法

单例样本:

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);