Belajar Android Membuat Zebra ListView

Dulu Awal tahun saya punya target untuk bisa posting artikel setiap hari, tetapi kenyataanya hanya mampu sebulan sekali. Yah memang belum cukup kalau hanya baru niat saja harus dilanjutkan dengan tindakan untuk mencapai target

Topik kali ini kita akan membahas tentang Zebra, tapi bukan hewan yah. Melainkan membuat Zebra ListView pada android. Kalau permen saja ada yang zebra warnanya masak ListView nggak boleh hehehe.

Untuk mempersingkat waktu mari kita mulai langkah-langkahnya.

1. Buat Project baru dengan nama “ZebraListView” dan Packagennya dengan nama “com.batikmob.zebralistview


2. Seperti biasaya yang kita urus pertamakali adalah bagian user interface untuk itu mari kita buka main_activity.xml lalu ketikan kode berikut.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textViewRowName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Food Price List"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textViewRowName"
        android:text="Name" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView2"
        android:layout_alignBottom="@+id/textView2"
        android:layout_alignParentRight="true"
        android:text="Price" />

    <ListView
        android:id="@+id/listViewMakanan"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView2" >
    </ListView>

</RelativeLayout>

3. Buat Layout untuk isi dari listview simpan dengan nama row.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textViewRowName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Name" />

    <TextView
        android:id="@+id/textViewRowPrice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="Price" />

</RelativeLayout>

4. Buat class baru untuk adapter listview diaman dsini warna untuk baris listview ditentukan. Simpan dengan SpecialAdapater.java

package com.batikmob.zebralistview;

import java.util.HashMap;
import java.util.List;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleAdapter;

public class SpecialAdapter extends SimpleAdapter {
    private int[] colors = new int[] { 0x306666FF, 0x30FF0066};
	
    public SpecialAdapter(Context context, List<HashMap<String, String>> items, int resource, String[] from, int[] to) {
        super(context, items, resource, from, to);
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      View view = super.getView(position, convertView, parent);
      int colorPos = position % colors.length;
      view.setBackgroundColor(colors[colorPos]);      
      return view;
    }
}

5 Sekarang kita kebagian jantung dari aplikasi yaitu class MainActivity.java lalu ketikan kode berikut

package com.batikmob.zebralistview;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;

public class MainActivity extends Activity {
	private ArrayList<HashMap<String, String>> listmakanan = new ArrayList<HashMap<String, String>>();
	ListView listviewFood;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		listviewFood = (ListView) findViewById(R.id.listViewMakanan);
		initData();
		populateListView();
	}

	private void initData(){
		listmakanan.add(genHashMap("Ayam Bakar Madu", "20000"));
		listmakanan.add(genHashMap("Ayam Kremes", "22000"));
		listmakanan.add(genHashMap("Ayam Goreng Pemuda", "15000"));
		listmakanan.add(genHashMap("Ikan Gurame Bakar", "30000"));
		listmakanan.add(genHashMap("Ikan Gurame Kipas", "30000"));
		listmakanan.add(genHashMap("Juz Jomblo", "15000"));
		listmakanan.add(genHashMap("Juz Anti Galau", "17000"));
		listmakanan.add(genHashMap("Juz Pemuda Idaman", "25000"));
		listmakanan.add(genHashMap("Juz Pembakar Semangat", "25000"));
	}
	 private HashMap<String,String> genHashMap(String name, String price){
	    	HashMap<String,String> map = new HashMap<String, String>();
	    	map.put("name", name);
	    	map.put("price", price);
	    	return map;
	 }

	 private void populateListView(){
		 SpecialAdapter adapter = new SpecialAdapter(this,listmakanan,R.layout.row,new String[] {"name", "price" }, new int[] {
					R.id.textViewRowName, R.id.textViewRowPrice });
			listviewFood.setAdapter(adapter);
	 }
}

6. Sekarang mari kita Run Programnya




Nah Lebih enak dilihatkan ListViewnya.
Ayooo semangat…..

Semoga Bemanfaat
Salam Hangat

Agus Haryanto

1 comment to Belajar Android Membuat Zebra ListView

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>