Dark Mode
Image

Android Fragments

Android Service

Android AlarmManager

Camera Tutorial

Sensor Tutorial

Android Graphics

Android Animation

Android Web Service

Android MCQ

Android Quiz

Android Preferences

Android shared preference is used to store and retrieve primitive information. In android, string, integer, long, number etc. are considered as primitive data type.

Android Shared preferences are used to store data in key and value pair so that we can retrieve the value on the basis of key.

It is widely used to get information from user such as in settings.

Android Preferences Example

Let's see a simple example of android shared preference.

android preference directory output 1

activity_main.xml

Drag one textview and two buttons from the pallete.

File: 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="example.javatpoint.com.preferences.MainActivity">  
  
    <TextView  
        android:id="@+id/txtPrefs"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_centerVertical="true"  
        android:text="Data:" />  
  
    <Button  
        android:id="@+id/storeinformation"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_below="@+id/showinformation"  
        android:layout_centerHorizontal="true"  
        android:layout_marginTop="18dp"  
        android:text="Store Information" />  
  
    <Button  
        android:id="@+id/showinformation"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_alignParentTop="true"  
        android:layout_centerHorizontal="true"  
        android:layout_marginTop="17dp"  
        android:text="Show Information" />  
  
</RelativeLayout>  

array.xml

It is created inside res/values directory.

File: array.xml

<?xml version="1.0" encoding="utf-8"?>  
<resources>  
    <string-array name="listOptions">  
        <item>English</item>  
        <item>Hindi</item>  
        <item>Other</item>  
    </string-array>  
  
    <string-array name="listValues">  
        <item>English Language</item>  
        <item>Hindi Language</item>  
        <item>Other Language</item>  
    </string-array>  
</resources> 

prefs.xml

It is created inside res/xml directory.

File: prefs.xml

<?xml version="1.0" encoding="utf-8"?>  
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">  
    <PreferenceCategory  
        android:summary="Username and password information"  
        android:title="Login information" >  
        <EditTextPreference  
            android:key="username"  
            android:summary="Please enter your login username"  
            android:title="Username" />  
        <EditTextPreference  
            android:key="password"  
            android:summary="Enter your password"  
            android:title="Password" />  
    </PreferenceCategory>  
  
    <PreferenceCategory  
        android:summary="Username and password information"  
        android:title="Settings" >  
        <CheckBoxPreference  
            android:key="checkBox"  
            android:summary="On/Off"  
            android:title="Keep me logged in" />  
  
        <ListPreference  
            android:entries="@array/listOptions"  
            android:entryValues="@array/listValues"  
            android:key="listpref"  
            android:summary="List preference example"  
            android:title="List preference" />  
    </PreferenceCategory>  
</PreferenceScreen>  

Main Activity Class

File: MainActivity.java

package example.javatpoint.com.preferences;  
  
import android.content.Intent;  
import android.content.SharedPreferences;  
import android.preference.PreferenceManager;  
import android.support.v7.app.AppCompatActivity;  
import android.os.Bundle;  
import android.view.View;  
import android.widget.Button;  
import android.widget.TextView;  
  
public class MainActivity extends AppCompatActivity {  
    TextView textView;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
  
        Button storeinformation = (Button) findViewById(R.id.storeinformation);  
        Button showinformation = (Button) findViewById(R.id.showinformation);  
        textView = (TextView) findViewById(R.id.txtPrefs);  
  
        View.OnClickListener listener = new View.OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                switch (v.getId()) {  
                    case R.id.storeinformation:  
                        Intent intent = new Intent(MainActivity.this,PrefsActivity.class);  
                        startActivity(intent);  
                        break;  
                    case R.id.showinformation:  
                        displaySharedPreferences();  
                        break;  
                    default:  
                        break;  
                }  
            }  
        };  
        storeinformation.setOnClickListener(listener);  
        showinformation.setOnClickListener(listener);  
    }  
  
  
    private void displaySharedPreferences() {  
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);  
        String username = prefs.getString("username", "Default NickName");  
        String passw = prefs.getString("password", "Default Password");  
        boolean checkBox = prefs.getBoolean("checkBox", false);  
        String listPrefs = prefs.getString("listpref", "Default list prefs");  
  
  
        StringBuilder builder = new StringBuilder();  
        builder.append("Username: " + username + "\n");  
        builder.append("Password: " + passw + "\n");  
        builder.append("Keep me logged in: " + String.valueOf(checkBox) + "\n");  
        builder.append("List preference: " + listPrefs);  
        textView.setText(builder.toString());  
  
    }  
  
}  

PrefsActivity class

File: PrefsActivity.java

package example.javatpoint.com.preferences;  
  
import android.os.Bundle;  
import android.preference.PreferenceActivity;  
  
public class PrefsActivity extends PreferenceActivity {  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        addPreferencesFromResource(R.xml.prefs);  
    }  
}  

AndroidManifest.xml

File: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
    package="example.javatpoint.com.preferences">  
  
    <application  
        android:allowBackup="true"  
        android:icon="@mipmap/ic_launcher"  
        android:label="@string/app_name"  
        android:roundIcon="@mipmap/ic_launcher_round"  
        android:supportsRtl="true"  
        android:theme="@style/AppTheme">  
        <activity android:name=".MainActivity">  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  
  
                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
        </activity>  
        <activity  android:name=".PrefsActivity"  
            android:theme="@android:style/Theme.Black.NoTitleBar" >  
        </activity>  
    </application>  
  
</manifest>  

Output:

android preference example output 1 android preference example output 2 android preference example output 3 android preference example output 4

Comment / Reply From