In this example we look at how to sort data in Xamarin Android using C# language.We sort data both ascending and descending on button click.
Intro
- We sort data in ascending and descending manner on button click.
- We use GridView as our component.
- We’ve used Visual Studio as our IDE.
- The code is well commented for easier understanding.
===
Common Questions we answer
With this simple example we explore the following :
- How o sort data in C#.
- Sort data ascending and descending manner.
- How to bind array data to gridview.
- Using ArrayAdapter with GridView.
- How to sort and reverse an array in C#.
- Using Xamarin Android with GridView.
Tools Used
- IDE : Visual Studio 2013
- OS : Windows 8.1
Source Code
MainActivity Class
- Our MainActivity,launcher activity.
- First we reference views here : in this case our GridView and buttons
using System;
using Android.App;
using Android.Widget;
using Android.OS;
namespace GridView_Sort
{
[Activity(Label = "GridView Sort", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
//VIEWS
private GridView gv;
private Button sortBtn;
//DATA
private readonly string[] spacecrafts = { "Kepler", "Casini", "Voyager", "New Horizon", "James Web", "Apollo 15", "Enterprise", "WMAP", "Spitzer", "Galileo" };
private bool ascending = false;
//CALLED WHEN ACTIVITY IS CREATED
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
this.InitializeViews();
this.SortData(ascending);
sortBtn.Click += sortBtn_Click;
}
//SORT BUTTON CLICKED
void sortBtn_Click(object sender, EventArgs e)
{
SortData(ascending);
this.ascending = !ascending;
}
//INITIALIZE VIEWS
private void InitializeViews()
{
gv = FindViewById<GridView>(Resource.Id.gv);
sortBtn = FindViewById<Button>(Resource.Id.sortBtn);
}
//POPULATE GRIDVIEW
private void Populate()
{
gv.Adapter=new ArrayAdapter(this,Android.Resource.Layout.SimpleListItem1,spacecrafts);
}
/*
* SORT
*/
private void SortData(bool asc)
{
//SORT ARRAY ASCENDING AND DESCENDING
if (asc)
{
Array.Sort(spacecrafts);
}
else
{
Array.Reverse(spacecrafts);
}
//CLEAR AND POPULATE LISTBOX
Populate();
}
}
}
Main.axml Layout
- Main Layout.
- We specify Views and widgets xml code here.
- This layout shall get inflated into our mainactivity interface.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="#d3d3d3"
android:layout_width="match_parent"
android:layout_height="match_parent">
<GridView
android:background="#009968"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:numColumns="2"
android:padding="10dp"
android:id="@+id/gv" />
<Button
android:text="Sort"
android:layout_centerInParent="true"
android:layout_width="381.0dp"
android:layout_height="70dp"
android:padding="10dp"
android:id="@+id/sortBtn"
android:layout_marginRight="0.0dp" />
</LinearLayout>
Result
- Here’s what we get when we run the project.
Xamarin Android GridView Sort Ascending and Descending[/caption]
How To Run
- Download the project above.
- You’ll get a zipped file,extract it.
- Open the Visual Studio.
- Now close, already open project
- Now import the project.
More
YouTube
- Visit our channel for more examples like these.
- Lets share tips and ideas in our Facebook Page.
Oclemy,Cheers.