Variablen Zähler funktioniert nicht - Android App

M4RC2

Mitglied
Hallo Leute,


ich habe eine App geschrieben. Hier der Codefetz:
Java:
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        int bier05 = getSharedPreferences("bier05", MODE_PRIVATE).getInt("bier05", 0);
        TextView myTextView = (TextView) findViewById(R.id.testausgabe); myTextView.setText("Bier " + bier05);
        getSharedPreferences("bier05", MODE_PRIVATE).edit().putInt("bier05", bier05);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //Menue
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return true;
    }
    
    public boolean onOptionsItemSelected(MenuItem item){

    	if(item.toString().equals("Einstellungen")){
    		setContentView(R.layout.settings);
    	}
    	if(item.toString().equals("Credits")){
    		setContentView(R.layout.credits);
    	}
    	if(item.toString().equals("Startseite")){
    		setContentView(R.layout.activity_main);
    	}
    return true;
    }
    public void Clickbier05(View view){
    	int bier05 = getSharedPreferences("bier05", MODE_PRIVATE).getInt("bier05", 0);
    	int a = 1;
    	int bier05new = bier05 + a;
    	TextView myTextView = (TextView) findViewById(R.id.testausgabe); myTextView.setText("Bier " + bier05new);
    	getSharedPreferences("bier05", MODE_PRIVATE).edit().putInt("bier05", bier05new);
    	
    }

Mein Problem ist, dass die App von 0 auf 1 zählt wenn ich auf den Button drücke, aber nichtmehr auf 2!!! Das soll ja aber ein "Zähler" sein....

Wo liegt das Problem?


Marc
 
So weit ich das sehe, ist bier05new der Zähler. Diese Variable ist lokal, was heißt, dass ihr Speicherplatz nach verlassen ihres Blocks wieder freigegeben wird.
 
So, ich habe mal ein bisschen gestöbert:
Interface used for modifying values in a SharedPreferences object. All changes you make in an editor are batched, and not copied back to the original SharedPreferences until you call commit() or apply()
Quelle: SharedPreferences.Editor | Android Developers

Bei dir fehlt also bei dem Aufruf noch was, so sollte es gehen:
Java:
getSharedPreferences("bier05", MODE_PRIVATE).edit().putInt("bier05", bier05new).commit();
auch wenn's unschön aussieht

Grüße
 
Zuletzt bearbeitet:

Zurück
Oben