getIntent mit Long?

  • Antworten:9
  • Bentwortet
Meister
  • Forum-Beiträge: 55

02.11.2018, 22:52:31 via Website

Ich habe gedacht das bei meiner App int ausreichen würde, und deswegen auch int gewählt aber nun hat es jemand geschafft, bei dem Spiel die Grenz zu knacken ^^
Hier erstmal die codes:

Intent intent = new Intent (this, Ende.class);
            intent.putExtra("Punkte", punkteSp);
            startActivity(intent);
            finish();

Das in der Klasse, von der die Punkte übernommen werden.

Und nun der Codeabschnitt der Klasse, in die die Punkte übernommen werden sollen.

this.preferences = this.getSharedPreferences("highscore", MODE_PRIVATE);
    preferencesEditor = preferences.edit();

    Bundle extras = getIntent().getExtras();         <-----------------------
    if (extras == null){
        erreichtePunkte=preferences.getInt(KEY, 0);
    }
    else {
        erreichtePunkte = extras.getInt("Punkte");
    }
    punkteAnzeigen();
}

private void punkteAnzeigen(){

        tvHighscore.setText("Punkte: "+erreichtePunkte);

        preferencesEditor.putInt(KEY, erreichtePunkte);
        preferencesEditor.putInt(KEY, erreichtePunkte); 
        preferencesEditor.commit(); 
}

Im Internet finde ich nicht viel. habe die Methode so gelernt und nichts bezüglich long gelesen. Bzw. nichts passendes hierzu.
Wie kann ich eine Long Zahl übernehmen?
Wenn ich die Variablen in Long umändere dann wird immer die 0 angezeigt im Endbildschirm . Also müsste es irgendwie anders laufen bei long. ^^

Kommentieren
Beste Antwort
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

02.11.2018, 23:22:38 via Website

Naja, wenn du oben ein Long ins IntentExtra packst musst du es auch als Long auslesen und nicht als int:

getIntent().getLongExtra("Punkte", 0);

siehe:
https://stackoverflow.com/a/21278987

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Meister
Kommentieren
Ludy
  • Admin
  • Forum-Beiträge: 7.961

03.11.2018, 00:01:57 via App

Nur ne Anmerkungen, aber int sind 32 bit entspricht 2.147.483.647 positive wie auch negativ

Sicher das Das der Fehler ist?

— geändert am 03.11.2018, 00:02:32

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

Hilfreich?
Kommentieren
Meister
  • Forum-Beiträge: 55

03.11.2018, 10:24:44 via Website

jap, einer hats geschafft das zu knacken bei meinem Spiel und dadurch wurde eine negative Zahl angezeigt.

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.537

03.11.2018, 11:19:41 via Website

Das kann ich nicht ganz glauben das dadurch eine negative zahl angezeigt wird. Angezeigt schon. Aber beim letzten add hätte eigentlich ein Fehler kommen müssen das der Wertebereich überschritten ist.

2.147.483.647 = 0x7FFF FFFF + 1 -> 0x8000 0000 = signet Int -2.147483.648 ,
unsignet Int 2.147.483.648

— geändert am 03.11.2018, 11:42:27

Hilfreich?
Kommentieren
Meister
  • Forum-Beiträge: 55

03.11.2018, 11:33:45 via Website

image

Ein Fehler wird nicht angezeigt.

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.537

03.11.2018, 11:49:04 via Website

ich habe immer gedacht das Java da eine Fehlermeldung gibt.

In Android Java gibt es ja glaube nur signet int. Da hätte ich das erwartet.

Dann musst du das selber Überwachen und etweder fehler ausgeben oder selber berichtigen.

Das es Angezeigt wird habe ich dir schon geglaubt nur das es überhaupt möglich ist, ohne das Java etwas meckert.

— geändert am 03.11.2018, 12:45:12

Hilfreich?
Kommentieren
Meister
  • Forum-Beiträge: 55

03.11.2018, 12:10:17 via Website

ja genau, habe mir auch schon was überlegt 😋 hänge einen weiteren in vorne ran und setze den anderen auf null.

Hilfreich?
Kommentieren
Jokel
  • Forum-Beiträge: 1.537

03.11.2018, 12:38:52 via Website

aber du bist doch schon auf long 64Bit umgestiegen das solte doch reichen.

ja genau, habe mir auch schon was überlegt 😋 hänge einen weiteren in vorne ran und setze den anderen auf null.

genau das ist Long 64 Bit

— geändert am 03.11.2018, 12:40:20

Hilfreich?
Kommentieren
Meister
  • Forum-Beiträge: 55

03.11.2018, 19:35:12 via Website

ja stimmt auch 😂😅

Hilfreich?
Kommentieren