Можно создать дубликат:
How do I save an Android application's state?Android: Сохранение состояния экземпляра, когда приложение закрыто
Я новичок в Java и Android и строительство некоторых небольших проектов для изучения. Я сделал приложение для отслеживания денег, которое позволяет пользователю вводить значения, и он просто продолжает вычитать его. Все работает нормально, но я хотел, чтобы значения сохранялись или кешировались, когда приложение закрыто и снова открыто. Чтение, я обнаружил, что OnPause будет делать трюк, но все же не понимает его на 100%.
Может ли кто-нибудь порекомендовать, как это сделать и как применить к моему коду?
Большое вам спасибо за помощь!
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());
}
}
});
}
}
Почему вы должны использовать SharedPreferences вместо пучка в onSaveInstanceState? –