Xamarin Forms: Menampilkan data pada ListView (Part 3)

Pada blog sebelumnya saya telah membahas bagaimana cara untuk menampilkan data pada kontrol ListView dengan sumber data berupa koleksi objek. Pada tutorial kali ini saya akan membahas bagaimana cara menampilkan gambar pada kontrol ListView.

Pada contoh yang sebelumnya anda sudah menggunakan ListView ItemTemplate untuk menampilkan informasi berupa Text dan Detail. Kontrol ListView pada Xamarin juga menyediakan template yang menampilkan tidak hanya data berupa text, pada contoh dibawah ini kita akan mencoba untuk menampilkan data berupa gambar pada kontrol ListView.

1. Pada project portable, tambahkan halaman xaml baru dengan nama ListViewImageCell.xaml.

2. Kemudian tambahkan kode xaml berikut ini:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Modul3.ListViewImageCell">
  <ListView x:Name="listView" ItemsSource="{Binding ListItems}">
    <ListView.ItemTemplate>
      <DataTemplate>
        <ImageCell ImageSource="{Binding Source}" Text="{Binding Title}" Detail="{Binding Description}" />
      </DataTemplate>
    </ListView.ItemTemplate>
  </ListView>
</ContentPage>

3. Pada kode xaml diatas dapat dilihat bahwa elemen Data Template yang digunakan berbeda dengan contoh sebelumnya yang menggunakan element TextCell, pada kasus ini digunakan element ImageCell untuk menampilkan data berupa image dan text.

4. Pada folder Models modifikasi class ListItem.cs yang sebelumnya sudah dibuat. Tambahkan property Source yang akan digunakan untuk menyimpan informasi gambar.

    public class ListItem
    {
        public string Source { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
    }

5. Pada file ListViewImageCell.xaml.cs tambahkan kode berikut ini

    public partial class ListViewImageCell : ContentPage
    {
        public ListViewImageCell()
        {
            InitializeComponent();
            BindingContext = new ListViewImageCellViewModel();
        }


        public class ListViewImageCellViewModel : BindableObject
        {
            private List<ListItem> listItems;
            public List<ListItem> ListItems
            {
                get { return listItems; }
                set
                {
                    listItems = value;
                    OnPropertyChanged("ListItems");
                }
            }

            public ListViewImageCellViewModel()
            {
                listItems = new List<ListItem>
                {
                    new ListItem { Source="first.png", Title="Mystic", Description="Mystic team blue badge" },
                    new ListItem { Source="second.png", Title="Instinct",Description="Instinct team yellow badge" },
                    new ListItem { Source="third.png", Title="Valor",Description="Valor team red badge" }
                };
            }
        }
    }

6. Tambahkan juga class dengan nama ListViewImageCellViewModel.cs. Class ini berisi objek-objek yang akan ditampilkan pada kontrol ListView.

7. Kode diatas mirip dengan contoh sebelumnya, hanya ada tambahan inisialisasi satu property baru yaitu Source yang berisi nama file image yang akan ditampilkan.

8. Untuk menambahkan image yang akan ditampilkan, tambahkan image yang akan ditampilkan kedalam project Droid (untuk aplikasi android) di folder Resources\drawable. Pada contoh berikut ditambahkan tiga file bertipe .png kedalam folder tersebut. Anda dapat download asset tersebut disini

image

9. Kemudian tekan tombol F5 untuk menjalankan program pada emulator, hasil dari aplikasi yang sudah dibuat dapat dilihat pada kode berikut ini. Jangan lupa untuk mengganti inisalisasi page yang diload oleh aplikasi pada App.xaml.cs

image

Advertisement

Xamarin Forms: Menampilkan data pada ListView (Part 2)

Pada blog sebelumnya saya telah membahas bagaimana cara untuk menampilkan data pada kontrol ListView dengan sumber data berupa koleksi string. Pada contoh dibawah ini akan ditunjukan bagaimana cara untuk menampilkan sumber data koleksi dari objek kedalam kontrol ListView.

Pada contoh berikut dijelaskan cara menampilkan data dari objek data model yang sudah disiapkan sebelumnya.

1. Pada project Portable, tambahkan folder baru dengan nama Models, kemudian tambahkan class dengan nama ListItem.cs.

public class ListItem
    {
        public string Title { get; set; }
        public string Description { get; set; }
    }

2. Untuk class yang digunakan untuk Binding, pastikan menggunakan Public

3. Kemudian tambahkan halaman xaml baru (Form Xaml Page) dengan nama BindingToDataModel.xaml, kemudian tambahkan kode xaml berikut:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Modul3.BindingToDataModel">
  <ListView ItemsSource="{Binding ListItems}" ItemTapped="ListViewItemTapped">
    <ListView.ItemTemplate>
      <DataTemplate>
     <TextCell Text="{Binding Title}" Detail="{Binding Description}" DetailColor="Red" />
      </DataTemplate>
    </ListView.ItemTemplate>
  </ListView>
</ContentPage>

4. Pada halaman xaml diatas digunakan ItemTemplate untuk mengatur data yang akan ditampilkan pada kontrol ListView. Keyword Binding digunakan untuk mengikatkan data yang diambil dari objek data model kedalam kontrol ListView.

5. Element TextCell digunakan untuk menampilkan dua informasi yaitu title dan description.

6. Pada file BindingToDataModel.xaml.cs tambahkan kode berikut ini.

    public partial class BindingToDataModel : ContentPage
    {
        public BindingToDataModel()
        {
            InitializeComponent();
            BindingContext = new ListViewDataModelViewModel();
        }

        public class ListViewDataModelViewModel : BindableObject
        {
            private List<ListItem> lstItems;
            public ListViewDataModelViewModel()
            {
                lstItems = new List<ListItem>
                {
                    new ListItem { Title="Mystic", Description="Mystic team blue badge" },
                    new ListItem {Title="Instinct",Description="Instinct team yellow badge" },
                    new ListItem {Title="Valor",Description="Valor team red badge" }
                };
            }
            public List<ListItem> ListItems
            {
                get { return lstItems; }
                set {
                    lstItems = value;
                    OnPropertyChanged("ListItems");
                }
            }
        }
    }

7. Jika ada merah pada ListItem tambahkan using Modul3.Models;

8. Property BindingContext digunakan untuk mengarahkan sumber data yang akan ditampilkan pada halaman xaml.

9. Class ListViewDataModelViewModel.cs. akan digunakan untuk membuat objek ListItems yang akan ditampilkan kedalam kontrol ListView.

10. Pada kode diatas dapat dilihat bahwa class ListViewDataModelViewModel diturunkan dari class BindableObject, ini bertujuan agar kita dapat menggunakan method OnPropertyChanged() yang akan memberi tahu program bahwa ada objek yang berubah.

11. Untuk mengambil informasi dari data yang dipilih pada kontrol ListView, anda dapat menambahkan event ItemTapped ke dalam class BindingToDataModel seperti ditunjukan pada kode berikut:

        private async void ListViewItemTapped(object sender, ItemTappedEventArgs e)
        {
            ListItem item = (ListItem)e.Item;
            await DisplayAlert("Tapped", item.Title.ToString() + " was selected", "OK");
            ((ListView)sender).SelectedItem = null;
        }

12. Setelah itu masuk ke halaman App.xaml.cs dan ubah kode program berikut di bagian constructor seperti berikut :

public App()
        {
            InitializeComponent();
            MainPage = new BindingToDataModel();
        }

13. Tekan tombol F5 untuk menjalankan aplikasi pada android emulator.

image

Xamarin Forms: Menampilkan data pada ListView (Part 1)

Pada tutorial kali ini saya akan membahas bagaimana menggunakan kontrol ListView pada Xamarin Forms. ListView adalah salah satu kontrol yang banyak digunakan untuk menampilkan data pada layar ponsel yang memiliki keterbatasan ukuran. Untuk menampilkan data dari sumber data kedalam view/kontrol maka digunakan mekanisme data binding.

Binding Data yang bertipe List Of String

Mekanisme binding umum digunakan pada Xamarin Form. Binding adalah mengaitkan data yang ada pada data source (sumber data) ke kontrol tertentu. Ada dua macam jenis binding yaitu one-way binding dan two-way binding. One-way binding digunakan hanya untuk menampilkan data saja, sedangkan two-way binding digunakan untuk menampilkan dan mengedit data.

Latihan Menampilkan Data bertipe List Of String

1. Buat Xamarin Cross Platform Portable solution dengan nama Modul3. Kemudian pada project Portable tambahkan halaman xaml baru (Form Xaml Page) dengan nama BindingListString.xaml.

image

2. Kemudian tambahkan kode berikut:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Modul3.BindingListString">
  <ListView x:Name="listView" />
</ContentPage>

3. Pada file BindingListString.xaml.cs tambahkan kode C# berikut untuk menampilkan data berupa objek List kedalam kontrol ListView.

public BindingListString()
{
InitializeComponent();
List<string> items = new List<string> { "First", "Second", "Third" };
       listView.ItemsSource = items;
}

4. Anda juga dapat mengambil informasi data/item yang dipilih pada ListView, caranya adalah dengan menambahkan event handler ‘ItemTapped’ kedalam ListView.

        public BindingListString()
        {
            InitializeComponent();
            List<string> items = new List<string> { "First", "Second", "Third" };
            listView.ItemsSource = items;

            //untuk mengambil nilai item ketika diklik pada baris
            listView.ItemTapped += async (sender, e) =>
            {
                 await DisplayAlert("Tapped", e.Item.ToString() + " was selected", "OK");
                 ((ListView)sender).SelectedItem = null;
            };
        }

5. Setelah itu masuk ke halaman App.xaml.cs dan ubah kode program berikut di bagian constructor seperti berikut :

        public App()
        {
            InitializeComponent();
            MainPage = new Modul3.BindingListString();
        }

6. Tekan F5 untuk menjalankan program pada emulator, hasilnya dapat dilihat pada gambar dibawah ini:

image

Cara membuat Android apk pada Xamarin Forms

Pada blog yang sebelumnya saya pernah menjelaskan bagaimana cara untuk membuat Android apk file pada Xamarin Forms. Namun sejak update package Xamarin Forms baru pada bulan November, terjadi perubahan metode pembuatannya. maka dari itu pada blog ini saya akan mencoba membahas pembuatan Android apk file dengan cara yang baru.

1. Klik kanan pada project Android, kemudian pilih Archive.

image

2. Setelah langkah ini dikerjakan maka Visual Studio akan menyiapkan semua file yang nanti akan dikompilasi menjadi file .apk.

image

image

3. Setelah selesai pilih tombol Distribute untuk mendistribusikan .apk yang akan dibuat. Ada dua pilihan yaitu Ad Hoc dan Google Play. Pilih Ad Hoc untuk mendistribusikan .apk tanpa melalui google play.

image

6. Anda akan diminta untuk membuat sertifikat Android Keystore, masukan data yang dibutuhkan seperti gambar dibawah ini, kemudian tekan tombol Create.

image

7. Setelah proses signing identity pada aplikasi yang kita buat, pilih tombol Save As.

image

8. Beri nama .apk tersebut, misalnya modul2.modul2

image

9. Anda akan diminta untuk memasukan password yang sebelumnya sudah anda buat ketika membuat Android Keystore.

image

10. Anda dapat melihat bahwa kita sudah berhasil membuat file .apk yang siap untuk didistribusikan.

image