Tuesday, 8 March 2016

oncreate - Android: Save an instance state when app is closed







I am new to Java and Android and building some small projects to learn. I made a money tracking app which allows the user to input values and it simply continues to subtract it. Everything works fine but I wanted the values to save or cache when the app is closed and reopened.
Reading, I found maybe a OnPause would do the trick, but still not 100% understanding it.



Can anyone recommend how to do this and how to apply to my code?




Thank you so much for your help!!



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());



}
}

});
}
}

No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...