Create Android ISharedPreferences App
Introduction
This application is to create and maintain Session Values in Xamarin Android.
Step 1 : Open Visual Studio->New Project->Templates->Visual C#->Android->Blank App->Select Blank App (Android). Then give Project Name and Project Location.
Step 2 : Next go to Solution Explorer-> Project Name then Right Click to Add->Class and open new Dialog box.
Step 3 : Dialog box to select Class and give the Name AppPreferences.cs,
Step 4 : Next, Open Solution Explorer->Project Name->Resources->AppPreferences.cs. Click to open the following code.
C# Code :-
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Android.App; using Android.Content; using Android.OS; using Android.Runtime; using Android.Views; using Android.Widget; using Android.Preferences; //Add New NameSpace namespace SharedPreference { public class AppPreferences { private ISharedPreferences nameSharedPrefs; private ISharedPreferencesEditor namePrefsEditor; //Declare Context,Prefrences name and Editor name private Context mContext; private static String PREFERENCE_ACCESS_KEY = "PREFERENCE_ACCESS_KEY"; //Value Access Key Name public static String NAME = "NAME"; //Value Variable Name public AppPreferences(Context context) { this.mContext = context; nameSharedPrefs = PreferenceManager.GetDefaultSharedPreferences(mContext); namePrefsEditor = nameSharedPrefs.Edit(); } public void saveAccessKey(string key) // Save data Values { namePrefsEditor.PutString(PREFERENCE_ACCESS_KEY, key); namePrefsEditor.Commit(); } public string getAccessKey() // Return Get the Value { return nameSharedPrefs.GetString(PREFERENCE_ACCESS_KEY, ""); } } }
Step 5 : Then Open Solution Explorer->Project Name->Resources->layout->Main.axml, then click open Design View. Select Toolbar, then Drag and Drop design of Buttons, TextView, PlainText.
XML Code :-
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:text="Enter Name" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/Text" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/txtsave" /> <Button android:text="Save" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btnsave" /> <TextView android:text="GET SAVED NAME" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView2" /> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/txtgetname" /> <Button android:text=" GET STORED DATA" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btnget" /> <Button android:text="Delete Preferences" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btnreset" />
Step 6 : Then open Solution Explorer->Project Name->MainActivity.cs. Click to open C# Code page. Then go to section OnCreate() and declare create Button, TextView and EditText Events.
C# Code :-
using System; using Android.App; using Android.Content; using Android.Runtime; using Android.Views; using Android.Widget; using Android.OS; using Android.Preferences; namespace SharedPreference { [Activity(Label = "SharedPreference", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { Button btnsave; Button btnget; Button btnreset; EditText txtname; TextView txtview; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); btnsave = FindViewById<Button>(Resource.Id.btnsave); btnget = FindViewById<Button>(Resource.Id.btnget); btnreset = FindViewById<Button>(Resource.Id.btnreset); txtname = FindViewById<EditText>(Resource.Id.txtsave); txtview = FindViewById<TextView>(Resource.Id.txtgetname); btnsave.Click += Btnsave_Click; btnget.Click += Btnget_Click; btnreset.Click += Btnreset_Click; } }
Step 7 : Next to create Save Button Event, save the entered text in textbox values. It is the value to maintain Session of AppPreferences.
C# Code :-
private void Btnsave_Click(object sender, EventArgs e) { //Save Sessionvalue Context mContext = Android.App.Application.Context; AppPreferences ap = new AppPreferences(mContext); ap.saveAccessKey(txtname.Text); txtname.Text = ""; }
Step 8 : Next to create Get Button Event, this event work to retrieve the AppPreferences stored value. After Retrieve Value it will display in TextView.
C# Code :-
private void Btnget_Click(object sender, EventArgs e) { //Get Sessionvalue Context mContext = Android.App.Application.Context; AppPreferences ap = new AppPreferences(mContext); string key = ap.getAccessKey(); txtview.Text = key.ToString(); }
Step 9 : Next to create Reset Button Event, this event would work with remove stored value in specified ACCESS_KEY.
private void Btnreset_Click(object sender, EventArgs e) { ISharedPreferences pref = PreferenceManager.GetDefaultSharedPreferences(this); ISharedPreferencesEditor editer = pref.Edit(); editer.Remove("PREFERENCE_ACCESS_KEY").Commit(); ////Remove Spec key values }
Step 10 : Press F5 or Build and Run the Application.
Click Delete Preferences button to remove Session values.
Download Source here
Finally, we successfully created Xamarin Android SharedPreferences(AppPreferences) Application.
![Anbu Mani](https://xmonkeys360.com/wp-content/uploads/2018/01/Anbu.jpg)
Anbu Mani(Microsoft MVP) is working Software Engineer in Changepond Technologies, Chennai, Tamilnadu, India. Having 4+ years of experience and his area of interest is C#, ASP.NET, SQL Server, Xamarin and Xamarin Forms,Azure…etc