Xamarin Android = ListView CRUD - ADD UPDATE DELETE

| Page Views: 2449 xamarin crud

In this class we want to see a simple CRUD example in Xamarin. Our component or widget is ListView, which allows us display one dimensional data vertically.

We will also use an edittext and a button. The aim is to add data to our ListView, edit them and delete as well.

Let's go

SECTION 1: OUR MAIN ACTIVITY

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using System.Collections;

namespace ListView_CRUD
{
    [Activity(Label = "ListView CRUD", MainLauncher = true, Icon = "@drawable/simplesmile")]
    public class MainActivity : Activity
    {
        ArrayList names;
        ListView lv;
        ArrayAdapter adapter;
        CRUD crud;
        EditText nameTxt;
        Button addBtn, updateBtn, deleteBtn,clearBtn;
        int selectedItem = -1;

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            lv = FindViewById<ListView>(Resource.Id.lv);
            nameTxt = FindViewById<EditText>(Resource.Id.nameTxt);
            addBtn = FindViewById<Button>(Resource.Id.addBtn);
            updateBtn = FindViewById<Button>(Resource.Id.updateBtn);
            deleteBtn = FindViewById<Button>(Resource.Id.deleteBtn);
            clearBtn = FindViewById<Button>(Resource.Id.clearBtn);

           names = new ArrayList();

           adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1, names);
           lv.Adapter = adapter;

           crud = new CRUD(adapter, names);

           lv.ItemClick += lv_ItemClick;
           addBtn.Click += addBtn_Click;
           updateBtn.Click += updateBtn_Click;
           deleteBtn.Click += deleteBtn_Click;
           clearBtn.Click += clearBtn_Click;

        }

        void clearBtn_Click(object sender, EventArgs e)
        {
            crud.clear();
            nameTxt.Text = "";
            adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1, names);
            lv.Adapter = adapter;
        }

        void deleteBtn_Click(object sender, EventArgs e)
        {
            if (crud.delete(selectedItem))
            {
                nameTxt.Text = "";
                adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1, names);
                lv.Adapter = adapter;
            }
        }

        void updateBtn_Click(object sender, EventArgs e)
        {
            if(crud.update(nameTxt.Text, selectedItem))
            {
                adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1, names);
                lv.Adapter = adapter;
            }
        }

        void addBtn_Click(object sender, EventArgs e)
        {
            if(crud.add(nameTxt.Text))
            {
                nameTxt.Text = "";
                adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1, names);
                lv.Adapter = adapter;
            }

        }

        void lv_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
        {
            this.selectedItem = e.Position;
            nameTxt.Text = names[selectedItem].ToString();
        }

    }
}

SECTION 2 : OUR MAIN LAYOUT

<?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"
    android:minWidth="25px"
    android:minHeight="25px">
    <TableRow
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tableRow1">
        <EditText
            android:inputType="textPersonName"
            android:id="@+id/nameTxt"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </TableRow>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:minWidth="25px"
        android:minHeight="25px">
        <Button
            android:text="Add"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/addBtn"
            android:layout_marginRight="0.0dp" />
        <Button
            android:text="Update"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/updateBtn" />
        <Button
            android:text="Delete"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/deleteBtn" />
        <Button
            android:text="Clear"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/clearBtn" />
    </LinearLayout>
    <ListView
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/lv" />
</LinearLayout>

Best Regards.

How do You Feel after reading this?

According to scientists, we humans have 8 primary innate emotions: joy, acceptance, fear, surprise, sadness, disgust, anger, and anticipation. Feel free to tell us how you feel about this article using these emotes or via the comment section.

About Me.

After completing his Software Engineering bachelors program, Oclemy(Clement Ochieng) these days is a man of two lives. At day he works for a startup in Nairobi, Kenya. At night he works tirelessly on building ProgrammingWizards TV, a tv channel for student coders and this website to help share the source code. In between he practices Meditation and Self actualization to help him keep balance. He also likes going for long solo walks to connect more with nature.




Recommendations


What do You Think


Previous Post Next Post