Mögliche Duplizieren geschlossen ist:
How do I save an Android application's state?Android: Speichern Sie eine Instanz Zustand, wenn app
Ich bin neu in Java und Android und einige kleine Projekte an zu lernen. Ich machte eine Geld-Tracking-App, die es dem Benutzer erlaubt, Werte einzugeben, und es wird einfach weiter subtrahiert. Alles funktioniert gut, aber ich wollte, dass die Werte gespeichert oder zwischengespeichert werden, wenn die App geschlossen und wieder geöffnet wird. Lesen, ich fand vielleicht eine OnPause würde den Trick, aber immer noch nicht 100% verstehen.
Kann mir jemand empfehlen, wie man das macht und wie man es auf meinen Code anwendet?
Vielen Dank für Ihre Hilfe !!
package ps.age.sl;
import java.text.NumberFormat;
import java.util.Locale;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
public class MoneyTrackerActivity extends Activity {
/** Called when the activity is first created. */
ImageButton subtract;
EditText startingmoney,submoney, endmoney, tracker;
Locale currentLocale = Locale.getDefault();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// startingmoney = (EditText) findViewById (R.id.firstmoney);
// submoney = (EditText) findViewById (R.id.submoney);
// subtract = (ImageButton) findViewById (R.id.subbutton);
// endmoney = (EditText) findViewById (R.id.endtv);
// tracker = (EditText) findViewById (R.id.trackertv);
startingmoney.setText("");
submoney.setText("");
endmoney.setText("");
subtract.setOnClickListener(new View.OnClickListener() {
double currentValue=0;
double startValue=0;
public void onClick(View v) throws NumberFormatException {
if (v == subtract)
{
NumberFormat currencyFormatter;
currencyFormatter = NumberFormat.getCurrencyInstance(currentLocale);
String totalString;
String x = startingmoney.getText().toString();
String y = submoney.getText().toString();
double total;
double xm = 0.00;
double ym =0.00;
try
{
xm = Double.parseDouble(x);
}
catch(NumberFormatException n)
{
xm = 0.00;
}
try
{
ym = Double.parseDouble(y);
}
catch(NumberFormatException n)
{
ym = 0.00;
}
if(startValue!=xm){
startValue=xm;
currentValue=xm;
}
currentValue = currentValue -ym;
totalString = currencyFormatter.format(currentValue);
endmoney.setText(totalString);
tracker.setText("you have entered " + totalString +"\n" + tracker.getText().toString());
}
}
});
}
}
Warum Sie SharedPreferences anstelle eines Bundle in onSaveInstanceState verwenden sollte? –