getIntent mit Long?

  • Antworten:9
  • OffenNicht stickyBentwortet
  • 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. ^^

Diskutiere mit!
Ludy
  • Mod
  • Blogger
  • Forum-Beiträge: 7.158

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.☺

Lebensmittelwarnung App-Thread

Download Samsung Firmware Tool

Hilfreich?
Diskutiere mit!
  • 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?
Diskutiere mit!
  • Forum-Beiträge: 482

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?
Diskutiere mit!
  • Forum-Beiträge: 482

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?
Diskutiere mit!
  • 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?
Diskutiere mit!
  • Forum-Beiträge: 482

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?
Diskutiere mit!

Empfohlene Artikel