Java 要显示的切换通知
根据具体情况,我将更改通知以显示,因此我编写了此代码 要在另一个类中调用它,请使用 但是eclipse告诉我“不能从类型通知中对非静态方法ShowNot(int)进行静态引用”为什么?如何修复?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
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);