Thursday, February 12, 2015

Belajar Android - Composite ListView

Happy rain tonight, guys...:) catatan kali masih tentang listview di android. Tentang Composite Listview, dimana disini listview menampilkan struktur yang lebih rumit. Berikut memperlihatkan listview dengan isi yang  kita tentukan sendiri.


ok mari kita mulai saja, pertama buat project baru, pada layout_main.xml tambahkan ListView kemudian ganti id menjadi listJudul seperti dibawah :

< LinearLayout 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="com.compositelistview.yonandroid.MainActivity" >

    < ListView
        android:id="@+id/listJudul"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    < /ListView>
    
< /LinearLayout>


Buat Layout baru beri nama row.xml, tambahkan LargeText dan TextView, lalu ganti id-nya seperti dibawah :

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

    < TextView
        android:id="@+id/tvJudul"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Large Text"
        android:textColor="#EB9500"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    < TextView
        android:id="@+id/tvKeterangan"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" 
        android:textColor="#3286FC"/ >

< /LinearLayout>



Lanjut sebuah buat Class dengan nama ListData.java lalu tambahkan kode berikut :

package com.compositelistview.yonandroid;

public class ListData {
 public String judul;
 public String keterangan;
 
 //Constructor
 public ListData(String judul, String keterangan){
  this.judul = judul;
  this.keterangan = keterangan;
 }

}

Lanjut buat satu Class lagi kasih nama DataAdapter.java, lalu tambahkan kode berikut :

package com.compositelistview.yonandroid;

import java.util.ArrayList;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class DataAdapter extends ArrayAdapter {
 private ArrayList alData;

 public DataAdapter(Context context, int textViewResourceId, ArrayListalData) {
  super(context, textViewResourceId, alData);
  this.alData = alData;
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  View v = convertView;
  //Isi layout baris dengan yang ada di row.xml
  if (v == null){
   LayoutInflater li = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
   v = li.inflate(R.layout.file_row, null);
  }
  //gambar baris sesuai index pos
  ListData dl = alData.get(position); //ambil data sesuai indek pos
  if (dl != null){
   TextView tvJudul = (TextView) v.findViewById(R.id.tvJudul);
   TextView tvKeterangan = (TextView) v.findViewById(R.id.tvKeterangan);
   tvJudul.setText(dl.judul);
   tvKeterangan.setText(dl.keterangan);
  }
  return v;
 }
}
Lanjut pada MainActivity.java Tambahkan Kode berikut :

package com.compositelistview.yonandroid;

import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;

public class MainActivity extends Activity {
 
 ArrayList alData = new ArrayList();
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //isi Data
        alData.add(new ListData("Malioboro", "Pusat Belanja Di Jogja ini selalu Ramai, apalagi ketika masa-masa liburan "));
        alData.add(new ListData("Parangtritis", "Pantai yang terkenal dengan alam gaibnya, Nyi Roro Kidul, penguasa pantai selatan"));
        alData.add(new ListData("Keraton", "Keterangan"));
        alData.add(new ListData("Candi Prambanan", "Keterangan"));
       
        //setAdapter
        ListView lv =(ListView) findViewById(R.id.listJudul);
        DataAdapter adapter = new DataAdapter(this, R.layout.file_row, alData);
        lv.setAdapter(adapter);
        
    }
}
oke, Selanjutnya silahkan di Run programnya: Good night, Happy rain tonight...

  @sumber dari mbah google.

0 komentar: