App speichert nicht richtig.

F

Falonex

Neues Mitglied
0
Folgendes Problem, ich bastel mir gerade meine erste eigene kleine App, bin nun auch fast soweit fertig wie ich denke, nur habe ich jetzt ein Problem damit die Daten zu speichern.
Wenn ich auf Home drücke und dann die app starte hat ers gespeichert, aber wenn ich auf zurück klicke ich auf den homebildschirm komme ich dann die app wieder starte ist alles wieder bei 0.
Ich hab mir das halt so gedacht, wenn per knopfdruck die werte geändert werden, das er dann auch gleich die werte abspeichert
Ich weiß jetzt leider nicht mehr weiter und hoffe mir kann wer helfen.

Hier der Code

Code:
package com.example.shishacount;


import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;



public class MainActivity extends Activity 
implements OnClickListener
{


		private Button btn_morehead;
		private Button btn_lesshead;
		private Button btn_moretime;
		private Button btn_lesstime;
		private Button btn_reset;
		private TextView txtview_time;
		private TextView txtview_head;
		private EditText edit_min;
		private int counthead;
		private double counttime;

	
		
		final String ShishaHeads="ShishaHeads";
		String countheadhilf="";
		final String ShishaTime="ShishaTime";
		String counttimehilf="";
		
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);                
		btn_morehead = (Button)   findViewById(R.id.btn_morehead);
		btn_lesshead = (Button)   findViewById(R.id.btn_lesshead);
		btn_moretime = (Button)   findViewById(R.id.btn_moretime);
		btn_lesstime = (Button)   findViewById(R.id.btn_lesstime);
		btn_reset	 = (Button)   findViewById(R.id.btn_reset);
		txtview_time = (TextView) findViewById(R.id.txtview_time);
		txtview_head = (TextView) findViewById(R.id.txtview_head);
		edit_min 	 = (EditText) findViewById(R.id.edit_min);
		
		
		
		
		btn_morehead.setOnClickListener(this);
		btn_lesshead.setOnClickListener(this);
		btn_moretime.setOnClickListener(this);
		btn_lesstime.setOnClickListener(this);
		btn_reset.setOnClickListener(this);
		
		
		countheadhilf=getSharedPreferences(ShishaHeads,MODE_PRIVATE).getString(countheadhilf,"0");
		txtview_head.setText(countheadhilf);
		
		counttimehilf=getSharedPreferences(ShishaTime,MODE_PRIVATE).getString(counttimehilf,"0");
		txtview_time.setText(counttimehilf);
		


	}

	protected void onStart(Bundle savedInstanceState) 
	{
		super.onStart();
		countheadhilf=getSharedPreferences(ShishaHeads,MODE_PRIVATE).getString(countheadhilf,"0");
		txtview_head.setText(countheadhilf);
		counttimehilf=getSharedPreferences(ShishaTime,MODE_PRIVATE).getString(counttimehilf,"0");
		txtview_time.setText(counttimehilf);
	}
	protected void onResume(Bundle savedInstanceState)
	{
		super.onResume();
		countheadhilf=getSharedPreferences(ShishaHeads,MODE_PRIVATE).getString(countheadhilf,"0");
		txtview_head.setText(countheadhilf);
		counttimehilf=getSharedPreferences(ShishaTime,MODE_PRIVATE).getString(counttimehilf,"0");
		txtview_time.setText(counttimehilf);
	}
	protected void onRestart(Bundle savedInstanceState)
	{
		super.onRestart();
		countheadhilf=getSharedPreferences(ShishaHeads,MODE_PRIVATE).getString(countheadhilf,"0");
		txtview_head.setText(countheadhilf);
		counttimehilf=getSharedPreferences(ShishaTime,MODE_PRIVATE).getString(counttimehilf,"0");
		txtview_time.setText(counttimehilf);
	}
	public boolean onCreateOptionsMenu(Menu menu) 
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

	
	double rechner;

	@Override
	public void onClick(View v) 
	{
				
		
		if(v==btn_morehead)
		{
			counthead=counthead+1;
			txtview_head.setText(Integer.toString(counthead));
			countheadhilf=Integer.toString(counthead);
			getSharedPreferences(ShishaHeads,MODE_PRIVATE).edit().putString(countheadhilf, countheadhilf.toString()).commit();
		}
		else if(v==btn_lesshead)
		{	
			final AlertDialog alertDialogLessHead= new AlertDialog.Builder(this).create();
			alertDialogLessHead.setTitle("-1 Kopf");
			alertDialogLessHead.setMessage("Sie können nicht weniger als 0 Köpfe geraucht haben.");
			alertDialogLessHead.setButton("schließen", new DialogInterface.OnClickListener(){
			public void onClick(DialogInterface dialog, int which) 
	    	{
				alertDialogLessHead.cancel();
	    	}});	
			if(counthead>0)
			{
				counthead=counthead-1;			
				txtview_head.setText(Integer.toString(counthead));
				countheadhilf=Integer.toString(counthead);
				getSharedPreferences(ShishaHeads,MODE_PRIVATE).edit().putString(countheadhilf, countheadhilf.toString()).commit();
			}
			else alertDialogLessHead.show();
		}	
		try{
		if(v==btn_moretime)
		{							
			
			rechner = Float.valueOf(edit_min.getText().toString());
			rechner=rechner/60;
			counttime=counttime + rechner;
			counttime=(double)Math.round(counttime*100)/100;
			txtview_time.setText(Double.toString(counttime));	
			counttimehilf=Double.toString(counttime);
			getSharedPreferences(ShishaTime,MODE_PRIVATE).edit().putString(counttimehilf, counttimehilf.toString()).commit();
		}
		
		else if(v==btn_lesstime)
		{			 
			rechner = Float.valueOf(edit_min.getText().toString());
			rechner=rechner/60;

			if(counttime>=rechner)
			{
				counttime=counttime-rechner;
				counttime=(double)Math.round(counttime*100)/100;
				txtview_time.setText(Double.toString(counttime));	
				counttimehilf=Double.toString(counttime);
				getSharedPreferences(ShishaTime,MODE_PRIVATE).edit().putString(counttimehilf, counttimehilf.toString()).commit();
			}
			else
			{
				final AlertDialog alertDialogLessTime= new AlertDialog.Builder(this).create();
				alertDialogLessTime.setTitle("-1 Kopf");
				alertDialogLessTime.setMessage("Sie können nicht weniger als 0,0 Stunden geraucht haben.");
				alertDialogLessTime.setButton("schließen", new DialogInterface.OnClickListener(){
				public void onClick(DialogInterface dialog, int which) 
		    	{
					alertDialogLessTime.cancel();
		    	}});	
				alertDialogLessTime.show();
			}
		}	
		}
		catch(NumberFormatException n)
		{

			
				final AlertDialog alertDialogEdit= new AlertDialog.Builder(this).create();
				alertDialogEdit.setTitle("-1 Kopf");
				alertDialogEdit.setMessage("Bitte geben Sie einen Wert bei der Minuteneingabe ein.");
				alertDialogEdit.setButton("schließen", new DialogInterface.OnClickListener(){
				public void onClick(DialogInterface dialog, int which) 
				{
					alertDialogEdit.cancel();
				}});	
				alertDialogEdit.show();
			}
	    if(v==btn_reset)
		{			
			final AlertDialog alertDialogReset= new AlertDialog.Builder(this).create();
			alertDialogReset.setTitle("Reset");
		    alertDialogReset.setMessage("Wollen Sie alle Werte wieder auf 0 setzen?");
		    alertDialogReset.setButton("Ja", new DialogInterface.OnClickListener(){
		    	public void onClick(DialogInterface dialog, int which)
		    	{      
		    		counttime = 0;
					counthead = 0;
					txtview_time.setText(Double.toString(counttime));
					txtview_head.setText(Integer.toString(counthead));	
					counttimehilf=Double.toString(counttime);
					getSharedPreferences(ShishaTime,MODE_PRIVATE).edit().putString(counttimehilf, counttimehilf.toString()).commit();
					countheadhilf=Integer.toString(counthead);
					getSharedPreferences(ShishaHeads,MODE_PRIVATE).edit().putString(countheadhilf, countheadhilf.toString()).commit();
		    	}});
		    	
		    alertDialogReset.setButton2("Nein", new DialogInterface.OnClickListener(){
	    	
		    	public void onClick(DialogInterface dialog, int which) 
		    	{
		    		alertDialogReset.cancel();
		    	}});	
		    alertDialogReset.show();
		}				
	}
	
	
}
 
@Override
protected void onClose()
{
// speichern
// ...
super.onClose();
}
 
Okay sieht jetz so aus hab aber noch einige fehlermeldungen
er meckert wegen dem override.
The method onclose of typ Mainacativity must override or implement a supertype method
und meckert er meckert wegen dem super.onclose das es undefined ist

hatte schon probiert mit onclose onpause onstop und so hatte früher nich funtkioniert hatte glaube aber auch das super.onclose nich drin weswegen ich echt nochmal um hilfe bitte vllt funktionierts ja so

Code:
@Override
	protected void onClose()
	{
		super.onClose();
		counttimehilf=Double.toString(counttime);
		getSharedPreferences(ShishaTime,MODE_PRIVATE).edit().putString(counttimehilf, counttimehilf.toString()).commit();
		countheadhilf=Integer.toString(counthead);
		getSharedPreferences(ShishaHeads,MODE_PRIVATE).edit().putString(countheadhilf, countheadhilf.toString()).commit();
	    
	}
 
Der unterschied ist einfach das der homebutton die app minimiert und der zurück soft key die activity beendet. Da muss man zwischen onpause und onclose unterscheiden

Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App
 
Ah okay, bin ich auf jedenfall schomal ein stückchen schlauer.
Und wie bekomm ich das jetzt zum laufen?

Der ursprüngliche Beitrag von 12:43 Uhr wurde um 12:52 Uhr ergänzt:

also was ich auch nicht verstehe, vom Prinzip her speiche rich doch alles per button drücken wieso is dannw ieder alles weg wenn ich t´zurück mache
 
onClose muss onPause heißen, hab da was verwechselt, sorry
 
Ja die sache ist, ich hab jetzt alles reingenommen, onpause onstop ondestroy und trotzdem funktioniert es nicht
 
=> Haltepunkte und Debugger
 

Ähnliche Themen

Manny87
  • Manny87
Antworten
11
Aufrufe
159
swa00
swa00
R
  • Robby1950
2
Antworten
23
Aufrufe
1.003
Robby1950
R
netfreak
  • netfreak
Antworten
10
Aufrufe
454
netfreak
netfreak
Zurück
Oben Unten