Tuesday, 11 December 2012

Shared Preferences

    The SharedPreferences class provides a general framework that allows you to save and retrieve persistent key-value pairs of primitive data types. You can use SharedPreferences to save any primitive data: booleans, floats, ints, longs, and strings. This data will persist across user sessions (even if your application is killed).

    To get a SharedPreferences object for your application, use one of two methods:
getSharedPreferences() - Use this if you need multiple preferences files identified by name, which you specify with the first parameter.

getPreferences() - Use this if you need only one preferences file for your Activity. Because this will be the only preferences file for your Activity, you don't supply a name.

To write values:
Call edit() to get a SharedPreferences.Editor.
Add values with methods such as putBoolean() andputString().
Commit the new values with commit()
To read values, use SharedPreferences methods such as getBoolean() and getString().


To put values in Shared Preferences

SharedPreferences values =  
PreferenceManager.getDefaultSharedPreferences
(MainActivity.this);
SharedPreferences.Editor editor = values.edit();
String name = editText1.getText().toString();
    
editor.putString("Name", name);
editor.putInt("Int", 1);
editor.putBoolean("boolean", true);
editor.putFloat("float", 1.1f);
editor.putLong("long", 1L);
editor.commit();


To get values from Shared Preferences
SharedPreferences values = PreferenceManager.getDefaultSharedPreferences(this);
     String Name = values.getString("Name", "null");
     int i = values.getInt("int", 10);
     boolean b = values.getBoolean("boolean", false);
     float f= values.getFloat("float", 0.0f);
     long l = values.getLong("long", 0);

    
Here is an example:

main.xml











MainActivity.java


package com.android.sharedPreferences;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class ExActivity extends Activity {

 EditText editText1;
 Button submit;

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  
  editText1 = (EditText) findViewById(R.id.editText1);
  submit = (Button) findViewById(R.id.submit);  
  
  //Intent
  submit.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    
    // shared preference
    SharedPreferences values = PreferenceManager
      .getDefaultSharedPreferences(MainActivity.this);
    SharedPreferences.Editor editor = values.edit();
    String name = editText1.getText().toString();
    
    editor.putString("Name", name);
    editor.putInt("Int", 1);
    editor.putBoolean("boolean", true);
    editor.putFloat("float", 1.1f);
    editor.putLong("long", 1L);
    editor.commit();
    //
    
    Intent i = new Intent(MainActivity.this,Second.class);
    startActivity(i);
    
   }
  });
 }
}
second.xml




    

    


Second.java


package com.android.sharedPreferences;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.widget.TextView;

public class Second extends Activity {
 TextView name;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.second);

  name = (TextView) findViewById(R.id.textview2);

  // shared preference
  SharedPreferences values = PreferenceManager
    .getDefaultSharedPreferences(this);
  String Name = values.getString("Name", "null");
  int i = values.getInt("int", 10);
  boolean b = values.getBoolean("boolean", false);
  float f = values.getFloat("float", 0.0f);
  long l = values.getLong("long", 0);
  name.setText(Name+" \n\n"+"int is \n\n"+i+"\n\n"+"boolean is \n\n"+b+"\n\n"+"float is \n\n"+f+"\n\n"+"long is \n\n"+l);

 }
}
Sample Manifest




    

    
        
            
                

                
            
        
                    
        
    



Run the program and feel the output friends.

Thank You