java.lang.NullPointerException: попытка вызвать виртуальный метод 'int com.xxHelper.SharedPref.GetInt(java.lang.String)' для ссылки на пустой объект

Я пытаюсь посчитать уведомление от OneSignal и сделать так, чтобы оно отображалось в значке, но я все еще получаю эту ошибку. Что не так с моим кодом?

public class HomeActivity extends AppCompatActivity implements NetworkBroadcastListener.iNetStats, iNotif {

Context context;
SharedPref spref;
TextView notif_badge;

protected void onCreate(Bundle savedInstanceState){
 super.onCreate(savedInstanceState);
        OneSignal.startInit(this).init();
        setContentView(R.layout.activity_home);

notif_badge = findViewById(R.id.cart_badge);
        setupBadge();



private void setupBadge() {
        int counter = spref.GetInt(localPref.TOTALNOTIF);
        context=this;
        spref = new SharedPref(this);
        notif_badge.setText(String.valueOf(Math.min(counter,99)));
    }

Вот мой OneSignal ReceiveHandler

public class NotifReceivedHandler implements OneSignal.NotificationReceivedHandler {

    Context context;

    SharedPref spref;

    public NotifReceivedHandler(Context context){
        this.context = context;
        spref = new SharedPref(context);
    }

    @Override
    public void notificationReceived(OSNotification notification) {
        Intent intent = new Intent();
        intent.setAction("com.x.x.NOTIFICATION");
        intent.putExtra("body",notification.payload.body);
        intent.putExtra("title",notification.payload.title);
        LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
        spref.AddInt(localPref.TOTALNOTIF,spref.GetInt(localPref.TOTALNOTIF)+1);
    }
}

1 ответ

Решение

Ваш SharedPref объект равен нулю, сделайте так:

private void setupBadge() {
    spref = new SharedPref(this); // This line initializes spref object.
    int counter = spref.GetInt(localPref.TOTALNOTIF); // here, spref was null because, it wasn't initialized yet.
    context=this;
    notif_badge.setText(String.valueOf(Math.min(counter,99)));
}
Другие вопросы по тегам