Skip to content

Instantly share code, notes, and snippets.

@anaselhajjaji
Created March 27, 2017 21:26
Show Gist options
  • Save anaselhajjaji/a24bd2c4ee48f73bc1c146d2461313df to your computer and use it in GitHub Desktop.
Save anaselhajjaji/a24bd2c4ee48f73bc1c146d2461313df to your computer and use it in GitHub Desktop.
using System;
using System.Collections.Generic;
using Android.App;
using Android.OS;
using Android.Support.V7.App;
using Android.Support.V7.Widget;
using Android.Views;
using Android.Widget;
namespace RememberIt
{
[Activity(Label = "Things to remember")]
public class RememberListActivity : AppCompatActivity
{
RecyclerView recyclerView;
RecyclerView.LayoutManager layoutManager;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.RememberList);
// Setup the toolbar
Android.Support.V7.Widget.Toolbar myToolbar = (Android.Support.V7.Widget.Toolbar)FindViewById(Resource.Id.my_toolbar);
SetSupportActionBar(myToolbar);
// Initialize the recycler view
recyclerView = FindViewById<RecyclerView>(Resource.Id.recyclerView);
layoutManager = new LinearLayoutManager(this);
recyclerView.SetLayoutManager(layoutManager);
// Populate the list
PopulateList();
}
public override bool OnOptionsItemSelected(Android.Views.IMenuItem item)
{
switch (item.ItemId)
{
case Resource.Id.action_add:
return true;
default:
return base.OnOptionsItemSelected(item);
}
}
public override bool OnCreateOptionsMenu(Android.Views.IMenu menu)
{
MenuInflater.Inflate(Resource.Menu.MainMenu, menu);
return base.OnCreateOptionsMenu(menu);
}
/// <summary>
/// Populates the list.
/// </summary>
void PopulateList()
{
// Let's create some dummy elements
RememberThing thing1 = new RememberThing();
thing1.Name = "Bring the milk";
thing1.Deadline = DateTime.Now.AddMinutes(10);
RememberThing thing2 = new RememberThing();
thing2.Name = "Bring the bread";
thing2.Deadline = DateTime.Now.AddMinutes(20);
List<RememberThing> rememberThings = new List<RememberThing>();
rememberThings.Add(thing1);
rememberThings.Add(thing2);
recyclerView.SetAdapter(new RememberThingsAdapter(rememberThings));
}
/// <summary>
/// The adapter.
/// </summary>
public class RememberThingsAdapter : RecyclerView.Adapter
{
public List<RememberThing> RememberThings { get; set; }
public RememberThingsAdapter(List<RememberThing> rememberThings)
{
RememberThings = rememberThings;
}
/// <summary>
/// The View Holder
/// </summary>
public class RememberThingsViewHolder : RecyclerView.ViewHolder
{
TextView name;
TextView deadline;
public RememberThingsViewHolder(View view) : base(view)
{
name = view.FindViewById<TextView>(Resource.Id.name);
deadline = view.FindViewById<TextView>(Resource.Id.deadline);
}
public void BindViewHolder(RememberThing rememberThing)
{
name.Text = rememberThing.Name;
deadline.Text = rememberThing.Deadline.ToString();
}
}
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
View view = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.RememberThing, parent, false);
return new RememberThingsViewHolder(view);
}
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
RememberThing rememberThing = RememberThings[position];
(holder as RememberThingsViewHolder).BindViewHolder(rememberThing);
}
public override int ItemCount
{
get
{
return RememberThings.Count;
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment