Created
March 27, 2017 21:26
-
-
Save anaselhajjaji/a24bd2c4ee48f73bc1c146d2461313df to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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