18 SharedPreferences








Android provides many ways of storing data of an application. One of this way is called Shared Preferences. Shared Preferences allow you to save and retrieve data in the form of key,value pair.
In order to use shared preferences, you have to call a method getSharedPreferences() that returns a SharedPreference instance pointing to the file that contains the values of preferences.

      SharedPreferences sharedpreferences = 
            getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 
 
  The first parameter is the key and the second parameter is the MODE. 


MODE_PRIVATE
By setting this mode, the file can only be accessed using calling application

You can save something in the sharedpreferences by using SharedPreferences.Editor class. You will call the edit method of SharedPreference instance and will receive it in an editor object.
Its syntax is −
 
Editor editor = sharedpreferences.edit();
editor.putString("key", "value");
editor.commit();

Algorithm:
1)create an Android Studio Project named as SharedPreferences.
2)open activity_main.xml file and design UI as follows.

Step 3) Open MainActivity.java file and implement the following code
    
create the object for  sharedpreferences
sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
 
create the object for   editor and use method called putString to store values as (key,value) pair.
 SharedPreferences.Editor editor = sharedpreferences.edit();

                editor.putString(Name, name);
                editor.putString(Phone, pwd);
                editor.putString(Email, email);
                editor.commit(); 
         
Step 5) Run the application from the menu bar select Run and Click on Run App option.


Step 6) go to the following path where the Shared Preferences file is created.



Go to  view-->Tool Windows -->Device File Explorer and open it.
       In side the Device File  Explorer window open data folder inside data folder next 
 open  the project name. i.e. com.example.sharedpreferences and 
   open the folder named as shared_prefs 
    Which contains the  sharedpreferences file i.e MyPrefs.xml

  
Program:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout  
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity">

    <TextView  
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content"         
         android:text="Shared Preference " 
         android:id="@+id/textView" 
         android:layout_alignParentTop="true"         
         android:layout_centerHorizontal="true"         
         android:textSize="35dp" />

    <TextView 
         android:layout_width="wrap_content"         
         android:layout_height="wrap_content"         
         android:text="Android Apps" 
         android:id="@+id/textView2" 
         android:layout_below="@+id/textView" 
         android:layout_centerHorizontal="true" 
         android:textSize="35dp" 
         android:textColor="#ff16ff01" />

    <EditText         
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:id="@+id/editText" 
         android:layout_below="@+id/textView2" 
         android:layout_marginTop="67dp" 
         android:hint="Name" 
         android:layout_alignParentRight="true" 
         android:layout_alignParentEnd="true" 
         android:layout_alignParentLeft="true" 
         android:layout_alignParentStart="true" />

    <EditText         
         android:layout_width="wrap_content"         
         android:layout_height="wrap_content" 
         android:id="@+id/editText2" 
         android:layout_below="@+id/editText" 
         android:layout_alignParentLeft="true" 
         android:layout_alignParentStart="true" 
         android:layout_alignParentRight="true" 
         android:layout_alignParentEnd="true" 
         android:hint="Pass" />

    <EditText 
         android:layout_width="wrap_content"        
         android:layout_height="wrap_content"       
         android:id="@+id/editText3" 
         android:layout_below="@+id/editText2" 
         android:layout_alignParentLeft="true" 
         android:layout_alignParentStart="true" 
         android:layout_alignParentRight="true" 
         android:layout_alignParentEnd="true" 
         android:hint="Email" />

    <Button 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="Save" 
         android:id="@+id/button" 
         android:layout_below="@+id/editText3" 
         android:layout_centerHorizontal="true" 
         android:layout_marginTop="50dp" />

</RelativeLayout>


MainActivity.java

package com.example.sharedpreferences;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    EditText ed1,ed2,ed3;
    Button b1;

    public static final String MyPREFERENCES = "MyPrefs" ;
    public static final String Name = "nameKey";
    public static final String Phone = "phoneKey";
    public static final String Email = "emailKey";

    SharedPreferences sharedpreferences;

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ed1=(EditText)findViewById(R.id.editText);
        ed2=(EditText)findViewById(R.id.editText2);
        ed3=(EditText)findViewById(R.id.editText3);

        b1=(Button)findViewById(R.id.button);
        sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);

        b1.setOnClickListener(new View.OnClickListener() {
            @Override 
           public void onClick(View v) {
                String name  = ed1.getText().toString();
                String pwd  = ed2.getText().toString();
                String email  = ed3.getText().toString();

                SharedPreferences.Editor editor = sharedpreferences.edit();

                editor.putString(Name, name);
                editor.putString(Phone, pwd);
                editor.putString(Email, email);
                editor.commit();
                Toast.makeText(MainActivity.this,"Thanks",Toast.LENGTH_LONG).show();
            }
        });
    }

}

Comments

Popular posts from this blog

20 Simple Content Provider Example

14 Popup Menu

19 SQLIte SImple Database Example