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(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