Problem bei Appentwicklung

T

Tobls22

Neues Mitglied
0
Hi Leute,
ich bin gerade dabei eine app zu programmieren, habe aber einen Fehler:
Momentan soll wenn man auf einen knopf klickt ein wert um 1 erhöht werden und dann im textview stehen.
allerdings ist es momntan so, dass beim ersten klick der wert auf -1 oder 1 geht und danach auf 0 bleibt wenn ich drücke
Hier ist mein code:

package de.tobls.steinreich;

import android.content.SharedPreferences;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
import android.widget.TabHost;
import android.widget.TextView;




public class MainActivity extends ActionBarActivity implements View.OnClickListener {

protected long stones;
protected long spc = 1;
protected long pricePickaxe = 1;

@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

TextView textviewQtystone = (TextView) findViewById(R.id.textviewQtystone);


SharedPreferences Speicher = getSharedPreferences("Datastorage", 0);
stones = Speicher.getLong("S", 0);
spc = Speicher.getLong("SPC", 0);
textviewQtystone.setText(String.valueOf(stones));


TabHost tabHost = (TabHost) findViewById(R.id.tabHost);
tabHost.setup();

TabHost.TabSpec tabSpec = tabHost.newTabSpec("resource");
tabSpec.setContent(R.id.tabResource);
tabSpec.setIndicator("Resource");
tabHost.addTab(tabSpec);

tabSpec = tabHost.newTabSpec("shop");
tabSpec.setContent(R.id.tabShop);
tabSpec.setIndicator("Shop");
tabHost.addTab(tabSpec);


ImageButton imgbuttonCounter = (ImageButton) findViewById(R.id.imgbuttonCounter);
imgbuttonCounter.setOnClickListener(this);

Button buttonBuypickaxe = (Button) findViewById(R.id.buttonBuypickaxe);
buttonBuypickaxe.setOnClickListener(this);


}

@override
public void onClick(View v) {
switch (v.getId()){
case R.id.imgbuttonCounter:
TextView textviewQtystone = (TextView) findViewById(R.id.textviewQtystone);
SharedPreferences Speicher = getSharedPreferences("Datastorage", 0);
spc = Speicher.getLong("SPC", 1);
stones = stones + spc;
textviewQtystone.setText(String.valueOf(stones));
case R.id.buttonBuypickaxe:
textviewQtystone = (TextView) findViewById(R.id.textviewQtystone);
Speicher = getSharedPreferences("Datastorage", 0);
stones = Speicher.getLong("S", 0);
if (stones <= pricePickaxe) {
spc = spc + 2;
SharedPreferences.Editor Speichereditor = Speicher.edit();
Speichereditor.putLong("SPC", spc);
Speichereditor.commit();
stones = stones - pricePickaxe;
pricePickaxe = pricePickaxe * (25/100);
textviewQtystone.setText(String.valueOf(stones));
}
}
}
}

Kann mir bitte jemand helfen??
 
Ist es Absicht, dass dein Switch-/Case-Statement keine "break"-Statements enthält?
 
:scared:Nein das war keine Absicht...
Jetzt funktioniert alles außer, dass beim kauf einer spitzhacke momentan das geld auf 0 gesetzt wird, statt dass der preis der spitzhacke abgezogen wird
Woran könnte das liegen?
 
Ich denke mal "stones" ist die Währung?
Was steht denn in deinen SharedPreferences unter "S" zum Zeitpunkt der Ausführung?

Etwas merkwürdig finde ich auch dieses If_Statement:
if (stones <= pricePickaxe)

Wenn ich weniger oder gleichviele Steine habe, wie eine Axt kostet, dann wird SPC erhöht, gespeichert und dann weiterhin der Preis der Axt von stones abgezogen und anschließend der Preis der Axt erhöht.
Falls die Bedingung nicht zutrifft (also man mehr Steine hat, als eine Axt koset), passiert.... Nichts.
 
Also in S steht die Anzahl der steine

das mit dem if statement hab ich gerade auch bemerkt und geändert hat aber nichts geholfen

Edit:
habe den Fehler gefunden:
Ich habe vergessen die neue steinanzahl den shared preferences zu übergeben nachdem ich auf den knopf geklickt hat, wo man +1 stein bekommt

Nochmal danke für eure Hilfe!
 

Ähnliche Themen

numanoid
Antworten
4
Aufrufe
1.554
numanoid
numanoid
E
Antworten
0
Aufrufe
959
ey6799
E
H
Antworten
24
Aufrufe
4.683
swa00
swa00
Zurück
Oben Unten