title: Android Shared Preferences
body: <p>I have Activity 'A' and Activity 'B'.In the Activity 'A' , If i have 6 EditText and the user enter only in 3 then i exit my app on click the onBackPressed Button without submit the EditText data which is entering , and then whenever i restart my app i want to same activity 'A' on start up. But when i run and enter only 3 edit text and 3 remaining and i exit my app fro the first time and again i restart app the launcher activity 'A' is start but when i do the same at the second time it will Call second Activity 'B'.How can i do this.Can someone help me please. Thanks to appreciate.</p>
  
  <p>Hare is my Activity code</p>
  
  <pre><code>public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.registration_details);
  
          SharedPreferences prefs =  PreferenceManager.getDefaultSharedPreferences(this);
          final SharedPreferences.Editor edit = prefs.edit();
          boolean alldataSaved=prefs.getBoolean("SecondRun",false);
  
          et_CompanyName = (EditText) findViewById(R.id.editText_CompanyName);
          et_EmployeeName = (EditText) findViewById(R.id.editText_EmployeeName);
          et_CompanyWebsite = (EditText) findViewById(R.id.editText_CompanyWebSite);
          et_ContactNumber = (EditText) findViewById(R.id.editText_ConatctNo);
          et_Email_Id = (EditText) findViewById(R.id.editText_EmailId);
  
  
  
          et_CompanyName.setOnFocusChangeListener(new OnFocusChangeListener() {          
  
              public void onFocusChange(View v, boolean hasFocus) {
                  if(!hasFocus)
                  {
                      edit.putString("Company_Name"+appWidgetId,et_CompanyName.getText().toString());
                      edit.commit();
                      Log.e("Boolean Value" , " = " + appWidgetId);
                  }
              }
          });
  
  
          et_EmployeeName.setOnFocusChangeListener(new OnFocusChangeListener() {          
  
              public void onFocusChange(View v, boolean hasFocus) {
                  if(!hasFocus)
                  {
                      edit.putString("Employee_Name"+appWidgetId,et_EmployeeName.getText().toString());
                      edit.commit();
                      Log.e("Boolean Value" , " = " + appWidgetId);
                  }
              }
          });
  
  
  
          et_CompanyWebsite.setOnFocusChangeListener(new OnFocusChangeListener() {          
  
              public void onFocusChange(View v, boolean hasFocus) {
                  if(!hasFocus)
                  {
                      edit.putString("Company_Website"+appWidgetId,et_CompanyWebsite.getText().toString());
                      edit.commit();
                      Log.e("Boolean Value" , " = " + appWidgetId);
                  }
              }
          });
  
  
          et_ContactNumber.setOnFocusChangeListener(new OnFocusChangeListener() {          
  
              public void onFocusChange(View v, boolean hasFocus) {
                  if(!hasFocus)
                  {
                      edit.putString("Contact_Number"+appWidgetId,et_ContactNumber.getText().toString());
                      edit.commit();
                      Log.e("Boolean Value" , " = " + appWidgetId);
                  }
              }
          });
  
  
  
          et_Email_Id.setOnFocusChangeListener(new OnFocusChangeListener() {          
  
              public void onFocusChange(View v, boolean hasFocus) {
                  if(!hasFocus)
                  {
                      edit.putString("Email_Id"+appWidgetId,et_Email_Id.getText().toString());
                      edit.commit();
                      Log.e("Boolean Value" , " = " + appWidgetId);
                  }
              }
          });
  
  
  
  
  
  
            SharedPreferences settings=getSharedPreferences("prefs",0); 
            boolean firstRun=settings.getBoolean("firstRun",false);
  
            if(firstRun==false)//if running for first time 
  
            {
                SharedPreferences.Editor editor=settings.edit();
                editor.putBoolean("firstRun",true); 
                editor.commit();
                //execute your code for first time
            } 
  
            else 
            { 
                if(alldataSaved == false)
                {
                    SharedPreferences.Editor editor=prefs.edit();
                    editor.putBoolean("SecondRun",true); 
                    editor.commit();
                    Log.e("Second"," Steps !!!!");
                }
                else
                {
                    Intent iSubmit = new Intent(A.this,B.class);
                    startActivity(iSubmit);
                    finish();
                    //Default Activity startActivity(a); 
                }
  
            }
  
          databaseHelper = new DatabaseHelper(this);
          databaseHelper.onOpen(db);
  
  
          radioGroup_FinancialYaer = (RadioGroup)findViewById(R.id.radioGroupFinanncialYear);
  
  
          btnSubmit = (Button) findViewById(R.id.buttonSubmit);
          btnSubmit.setOnClickListener(new OnClickListener() {
  
              @Override
              public void onClick(View v) {
                  // TODO Auto-generated method stub
  
                  final String stringEmail_Id = et_Email_Id.getText().toString()
                          .trim();
  
                  final String stringCompanyWebsite = et_CompanyWebsite.getText()
                          .toString().trim();
  
                  if ((et_CompanyName.getText().toString().isEmpty()))
                  {
                      et_CompanyName.setError("Field Can Not Be Empty !");
                  }
  
                  else if (!et_CompanyName.getText().toString().trim()
                          .matches("[a-zA-Z ]+"))
                  {
                      et_CompanyName.setError("Accept Alphabets Only.");
                  }
  
                  else if ((et_EmployeeName.getText().toString().isEmpty()))
                  {
                      et_EmployeeName.setError("Field Can Not Be Empty !");
                  }
  
                  else if (!et_EmployeeName.getText().toString().trim()
                          .matches("[a-zA-Z ]+"))
                  {
                      et_EmployeeName.setError("Accept Alphabets Only.");
                  }
  
                  else if ((et_CompanyWebsite.getText().toString().isEmpty()))
                  {
                      et_CompanyWebsite.setError("Field Can Not Be Empty !");
                  }
  
                  else if (!isValidUrl(stringCompanyWebsite))
                  {
                      et_CompanyWebsite.setError("Invalid URL");
                  }
  
                  else if ((et_ContactNumber.getText().toString().isEmpty()))
                  {
                      et_ContactNumber.setError("Field Can Not Be Empty !");
                  }
  
                  else if (!isValidEmail(stringEmail_Id))
                  {
                      et_Email_Id.setError("Invalid Email");
                  }
  
                  else
  
                  {
                      String stringCompanyName = et_CompanyName.getText()
                              .toString().trim();
                      String stringContactNumber = et_ContactNumber.getText()
                              .toString().trim();
                      String stringEmployeeName = et_EmployeeName.getText()
                              .toString().trim();
  
  
                      int selectedId = radioGroup_FinancialYaer.getCheckedRadioButtonId();
                      Log.e("selectedId "," = " + selectedId);
                      radioButton_FinancialYaer = (RadioButton) findViewById(selectedId);
                      strFinancialYear = radioButton_FinancialYaer.getText().toString().trim();
                      Log.e("strRadioButton "," = " + strFinancialYear);
  
  
                      databaseHelper.insertRegstrationDetails(stringCompanyName,
                              stringEmployeeName, stringCompanyWebsite,
                              stringContactNumber, stringEmail_Id, strFinancialYear);
                      System.out.println("Data Inserted Successfully !!! ");
  
                      Intent iSubmit = new Intent(A.this,B.class);
                      startActivity(iSubmit);
                      finish();
                  }
  
              }
          });
      }
  
      // validating email id
      private boolean isValidEmail(String email) {
  
          String EMAIL_PATTERN = "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" + "\\@"
                  + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" + "(" + "\\."
                  + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" + ")+";
  
          Pattern pattern = Pattern.compile(EMAIL_PATTERN);
          Matcher matcher = pattern.matcher(email);
          return matcher.matches();
      }
  
  
      private boolean isValidUrl(String url) {
          Pattern p = Patterns.WEB_URL;
          Matcher m = p.matcher(url);
          if(m.matches())
              return true;
          else
          return false;
      }
  
      @Override
       public boolean onKeyDown(int keyCode, KeyEvent event) {
           if ((keyCode == KeyEvent.KEYCODE_BACK)) {
               AlertDialog.Builder alertbox = new AlertDialog.Builder(Registration_Form.this);
  
               alertbox.setTitle("Do you wish to exit ?");
               alertbox.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface arg0, int arg1) { 
                      // finish used for destroyed activity
                       finish();
                   }
               });
  
               alertbox.setNegativeButton("No", new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface arg0, int arg1) {
                           // Nothing will be happened when clicked on no button 
                           // of Dialog     
                 }
               });
  
               alertbox.show();
           }
           return super.onKeyDown(keyCode, event);
       }
  
  }
  </code></pre>