2012-05-16 34 views
5

संभव डुप्लिकेट बंद कर दिया है:
How do I save an Android application's state?एंड्रॉयड: एक उदाहरण राज्य को बचाने जब एप्लिकेशन

मैं जावा और Android के लिए नया हूँ और कुछ छोटी परियोजनाओं के निर्माण में जानने के लिए। मैंने एक पैसा ट्रैकिंग ऐप बनाया जो उपयोगकर्ता को मूल्य इनपुट करने की अनुमति देता है और यह बस इसे घटाना जारी रखता है। सब ठीक काम करता है लेकिन मैं चाहता था कि ऐप बंद होने और फिर से खोलने पर मूल्यों को सहेजने या कैश करने के लिए। पढ़ना, मुझे लगता है कि शायद एक ऑनपॉज चाल करेगा, लेकिन फिर भी इसे 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()); 



       } 
        } 
             }); 
    } 
       } 

उत्तर

3

निजी एप्लिकेशन संग्रहण में डेटा स्टोर करने के लिए कृपया SharedPreferences का उपयोग करें।

@Override 
    protected void onPause() 
    { 
     super.onPause(); 
     // Store values between instances here 
     SharedPreferences preferences = getSharedPreferences("sharedPrefs", 0); 
     SharedPreferences.Editor editor = preferences.edit(); 
     editor.putString("CLASSLABEL", this.getLocalClassName()); // value to store 
     editor.putString("STRINGLABEL",String1); 
     editor.putString("STRINGLABEL1",String2); 
     // Commit to storage 
     editor.commit(); 
    } 
+0

आप onSaveInstanceState में एक बंडल के बजाय SharedPreferences प्रयोग क्यों करना चाहिए: onPause विधि में नीचे की तरह SharedPrefernces को लागू करने? –