Kesuksesan adalah melakukan hal-hal biasa dengan cara yang luar biasa

Subscribe to RSS feed

Sticky post

Save Our Gaza


YA ALLAH SEBAGAIMANA ENGKAU PERNAH MENGHANTAR BURUNG-BURUNG ABABIL MENGHANCURKAN TENTARA BERGAJAH MUSYRIKIN, MAKA KAMI MEMOHON KEPADA-MU YA ALLAH..
TURUNKANLAH BANTUANMU KALI INI KEPADA ORANG-ORANG ISLAM DI PALESTINA, HANCURKANLAH REZIM ZIONIS SEDASYAT-DASYATNYA..
AMIN...




Bahaya Duduk Terlalu Lama di Depan Komputer

Pas lagi browsing browsing nemu artikel yang cukup bagus, terutama untuk orang yang sering bekerja di belakang meja (depan komputer), artikelnya seperti berikut. Semoga membantu bigsmile

Penelitian selama 20 tahun di AS memperlihatkan bahwa pria yang lebih banyak duduk di depan komputer, kemungkinan berusia lebih pendek ketimbang yang hobi berolahra-ga. Riset dilakukan untuk mengamati gaya hidup dan pola olaharaga 17 ribu res-ponden yang terdiri dari alumnus University of Harvard. AS

Riset memperlihatkan betapa pentingnya olahraga dan olahraga dengan intensitas sedang, seperti joging sekitar 4 km sehari, tak hanya meningkatkan kebugaran, tetapi juga menambah usia, wow.
Lagi browesing - browesing nemu artikel yang cukup bagus, terutama untuk orang yang sering bekerja di belakang meja (dengan komputer), artikelnya seperti berikut selamat menikmati dan semoga membantu bigsmile

Menurut mereka, pria yang rajin olahraga punya harapan hidup lebih tinggi dibanding pria yang gaya hidupnya banyak duduk di depan komputer. Olahraga rutin menghindari efek memperpendek usia gara-gara merokok dan kelebihan berat badan.

Pria penderita tekanan darah tinggi yang rajin olahraga memiliki tingkat kematian separuh dibanding mereka yang tidak olahraga. Pria yang berjalan kaki sekitar 15 kilometer seminggu atau lebih memiliki tingkat kematian 21 persen lebih rendah dibandingkan pria yang berjalan kaki hanya 4 kilometer seminggu atau kurang.

Olahraga teratur mencegah kecenderungan penyakit genetis yang menyebabkan kematian. Pria yang satu atau kedua orangtuanya meninggal sebelum usia 65 tahun, tingkat kematiannya berkurang sebanyak 25 persen berkat olahraga teratur. Pria yang sangat aktif, termasuk mereka yang senang olahraga, memiliki harapan hidup yang paling baik. Ini karena kematian gara-gara penyakit jantung dan pembuluh darah menjadi lebih sedikit.

Riset terbaru di Selandia Baru juga menunjukkan efek buruk bagi karyawan yang lebih banyak berdiam di depam komputer. Riset tersebut menyebutkan karyawan kantor yang berjam-jam bekerja di belakang meja, lebih mudah mengalami gumpalan darah beku yang mematikan, dibanding penumpang pesawat terbang yang melakukan perjalanan jarak jauh.

Penelitian yang dilakukan Profesor Richard Beasley dari Lembaga Penelitian Medis di Wellington memperlihatkan sepertiga pasien rumah sakit yang mengalami deep vein thrombosis (DVT) adalah karyawan kantor yang menghabiskan waktu di depan komputer.

kerja-02Sejumlah 34 persen dari 62 sampel yang mengalami gumpalan darah merupakan orang yang dalam jangka waktu lama bekerja dengan duduk di kursi, sedangkan 21 persen penderita lainnya belum lama berselang melakukan perjalanan jarak jauh lewat pesawat. DVT adalah pembentukan gumpalan darah di nadi dalam, paling sering di kaki.

Gumpalan itu bisa pindah ke jantung, paru-paru atau otak yang menyebabkan rasa sakit dada, sesak nafas atau bahkan kematian akibat serangan jantung atau stroke. Kondisi itu biasa disebut sindrom kelas ekonomi karena penumpang pesawat terbang yang melakukan perjalanan jarak jauh namun tidak leluasa melemaskan anggota badannya merupakan mereka yang paling berisiko.

Wah, ternyata memang efeknya ga bagus deh, so, waspada gan, saatnya kita rubah gaya hidup kita ke yang lebih baik.

Sumber : bahaya duduk terlalu lama di depan komputer

Share image ke Twitter melalui Twittpic

Kita sering melihat baik itu di web maupun aplikasi di handphone yang menyediakan fasilitas untuk share, baik share ke twitter maupun ke Facebook dan lain sebagainya. Saat ini w cuman ingin membahas mengenai share ke twitter pada aplikasi Android. Untuk share ke twitter sudah ada SDKnya dan disini bukan membahas bagaimana cara share ke twitter, mungkin yang lain sudah pada jago yah bigsmile. Karna w belum pernah membuat program untuk share te twitter, w cuman menambahkan fungsionalitasnya ajah, yaitu ketika kita share ke twitter kita tidak hanya share kata-kata taw kalimat tapi juga ingin share dalam bentuk text dan gambarnya. Sudah banyak pihak ketiga yang menyediakan aplikasi ini, seperi yfrog, foursquare dan masih banyak lagi. Dan disini w menggunakan bawaannya twitter yaitu "Twitpic". Kita bisa melihat dokumentasinya di dev.twitpic.com/docs/ disini sudah sangat lengkap. Disini w menggunakan salah satu metodenya yaitu API v1 » uploadAndPost. Dengan url "http://api.twitpic.com/1/uploadAndPost.format" dan dalam format json (karna ini yang baru w pahami walaupun sedikit bigsmile).

Mari kita langsung mencoba yah.

Read more...

Upload Image To Imgur

Ketemu lagi kita nih, kita berjumpa dibulan puasa. Semuanya pada puasa kan? bigsmile
Di bulan yang penuh berkah ini w mau berbagi ilmu yang pernah w dapet nih, yaitu cara mengupload image ke suatu server atau dalam kata lain mengupload image ke imgur dengan menggunakan android. Pasti sudah tidak heran lagi kan dengan imgur dan jangan-jangan sudah sering menggunakan lagi bigsmile. Kala yang belum tau apa itu imgur silahkan liat aja disini http://imgur.com/. Sebelum kita mulai ada baiknya membaca documentasinya terlebih dahulu di http://api.imgur.com/.

Tak perlu basa basi lagi mari langsung kita mulai smile

Sebelumnya buat new project android terlebih dahulu yah, spesifikasinya terserah kalian ajah p. Sebenarnya cara untuk mengupload image ke imgur ini w dapet dari browsing-browsing trus menemukan project yang sesuai banget, w lupa donwload dimana filenya bigsmile. Trus w ambil code-code yang penting lalu w manipulasi biar mudah dimengerti (walaupun w sendiri masih belum mengerti codenya sih p). Sebagai developer yang baik jika kita mengambil code orang lain kita harus mencantumkan nama orang tersebut (biar ga dibilang pencuri bigsmile ) ini copyrightnya

Copyright (C) Michael Maass 2009 <code.realm@gmail.com>

Oke mari langsung kita mulai, dalam project ini w membuat 3 class yang terdiri dari
  1. UploadImageToImgurActivity
  2. UploadPhotoController
  3. UploadImageApplication

Dimana main classnya yaitu UploadImageToImgurActivity dan w membuat controller yang namanya UploadPhotoController, dibuat terpisah biar mudah dipahami dan mungkin sewaktu-waktu ada class yang mau pake biar ga perlu repot-repot lagi mengcopy paste bigsmile. Inti dari upload ke imgur ini ada di controllernya, sebelumnya w mau jelesin secara global project yang w buat ini. Project ini kita bisa upload dari gallery image kita maupun dari take photo (catt: tuk take photo ini w belum tau apakah berhasil ataw tidak karn w belum bisa ngetestnya karna di emulator w force close dan w ga punya device android tuk ngetestnya jadi moohon maaf kalo masih ada yang error uah bigsmile ).

Oke kita lanjutkan, untuk bisa upload ke imgur ini ada dua cara yaitu dengan menggunakan API anonymous atau dengan account kita di imgur. Kedua cara tersebut ada kurang dan kelebihannya tersendiri, untuk Anonymous API kekurangan yang dimiliki yaitu dia dibatasi 50 image perjamnya dan untuk itu kalian harus mendaftarkan email kalian untuk mendapatkan API key Anonymous biar bisa bekerja. Pokoke sebelumnya kalian baca tentang API imgur dulu kan tadi.

Sedikit kita review sedikit mengenai code UploadPhotoController ini. Untuk url yang w gunakan disini yaitu

http://imgur.com/api/upload.json

dan disini w menggunakan synctask untuk menampilkan progress bar yang menandakan bahwa file tersebut sedang di upload ke server. Koneksi ke server menggunakan tipe "POST" dan "multipart/from-data" karna disini kita akan melakukan pemindahan file dari komputer kita ke server. Code terpenting dari upload yaitu

final String boundaryString = "Z."
+ Long.toHexString(System.currentTimeMillis())
+ Long.toHexString((new Random()).nextLong());
final String boundary = "--" + boundaryString;
final HttpURLConnection conn = (HttpURLConnection) (new URL(urlServerUploadPhoto)).openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-type","multipart/form-data; boundary=\"" + boundaryString + "\"");
conn.setUseCaches(false);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setChunkedStreamingMode(CHUNK_SIZE);
final OutputStream hrout = conn.getOutputStream();
final PrintStream hout = new PrintStream(hrout);
hout.println(boundary);
hout.println("Content-Disposition: form-data; name=\"key\"");
hout.println("Content-Type: text/plain");
hout.println();
hout.println(API_KEY);
hout.println(boundary);
hout.println("Content-Disposition: form-data; name=\"image\"");
hout.println("Content-Transfer-Encoding: base64");
hout.println();
hout.flush();
{
final Base64OutputStream bhout = new Base64OutputStream(hrout);
final byte[] pictureData = new byte[READ_BUFFER_SIZE_BYTES];
int read = 0;
int totalRead = 0;
long lastLogTime = 0;
while (read >= 0) {
read = inputStream.read(pictureData);
if (read > 0) {
bhout.write(pictureData, 0, read);
totalRead += read;
if (lastLogTime < (System.currentTimeMillis() - PROGRESS_UPDATE_INTERVAL_MS)) {
lastLogTime = System.currentTimeMillis();
Log.d(this.getClass().getName(), "Uploaded "
+ totalRead + " of " + totalFileLength
+ " bytes (" + (totalFileLength * totalRead)
/ totalFileLength + "%)");
}
bhout.flush();
hrout.flush();
}
}
bhout.close();
}

hout.println(boundary);
hout.flush();
hrout.close();
inputStream.close();



urlServerUploadPhoto disini kita isi dengan "http://imgur.com/api/upload.json" dan API_KEY didapatkan ketika kita mendaftarkan email ataw aplikasi kita, bisa berupa Anonymous API maupun bukan tergantung dari kitanya.

Nah jika dijalankan hasil aplikasinya sebagai berikut (sangat-sangat sederhana bigsmile )








Tampilan yang sangat sederhana yah smile . Kalo ada bugs ataw kesalahan mohon dimaafin ya, w hanya seorang newbie yang ingin share ilmu smile. Saran dan kritik ditunggu yah. Dan semoga bermanfaat bagi yang lain bigsmile

NB : Biar programnya bisa jalan jangan lupa dimasukin API KEY kalian yah smile dan kalo mau liat source codenya klik disini ajah Full Source Code

KEYASCII

Selamat sore kita berjumpa lagi nih setelah beberapa vacum bigsmile. Nah sore ini lagi ga ada kerjaan trus ubek ubek isi hardisk eh nemuin experimen waktu kuliah, yaitu iseng-iseng nyobain key ascii satu satu dari angka nol (0) sampai seterusnya. Trus kepikiran bisa jadi bahan buat nulis blog nih lol. Mari kita mulai dari apa sih itu Key ASCII ataw ASCII, setelah browsing sana sini nemuin lah blog yg menerangkan ASCII secara ringkas.

Menurut Wikipedia ASCII merupakan Kode Standar Amerika untuk Pertukaran Informasi atau ASCII (American Standard Code for Information Interchange) merupakan suatu standar internasional dalam kode huruf dan simbol seperti Hex dan Unicode tetapi ASCII lebih bersifat universal, contohnya 124 adalah untuk karakter "|". Ia selalu digunakan oleh komputer dan alat komunikasi lain untuk menunjukkan teks. Kode ASCII sebenarnya memiliki komposisi bilangan biner sebanyak 8 bit. Dimulai dari 0000 0000 hingga 1111 1111. Total kombinasi yang dihasilkan sebanyak 256, dimulai dari kode 0 hingga 255 dalam sistem bilangan Desimal.

Kode ASCII sering sekali kita gunakan dan kita jumpai, seperti pada keyboard dan handphone. Keyboard memiliki kode ASCII, Sebagai contoh Huruf A memiliki kode ASCII 65, huruf a memiliki kode ASCII 97.
Kode ASCII 65 dalam implementasinya diterjemahkan ke kode Biner.
65 = 01000001
97 = 01100001

Jumlah kode ASCII adalah 255 kode. Kode ASCII 0..127 merupakan kode ASCII untuk manipulasi teks; sedangkan kode ASCII 128..255 merupakan kode ASCII untuk manipulasi grafik.

Kode ASCII sendiri dapat dikelompokkan lagi kedalam beberapa bagian:
  • Kode yang tidak terlihat simbolnya seperti Kode 10(Line Feed), 13(Carriage Return), 8(Tab), 32(Space)
  • Kode yang terlihat simbolnya seperti abjad (A..Z), numerik (0..9), karakter khusus (~!@#$%^&*()_+?:”{})
  • Kode yang tidak ada di keyboard namun dapat ditampilkan. Kode ini umumnya untuk kode-kode grafik.

Dalam pengkodean kode ASCII memanfaatkan 8 bit. Pada saat ini kode ASCII telah tergantikan oleh kode UNICODE (Universal Code). UNICODE dalam pengkodeannya memanfaatkan 16 bit sehingga memungkinkan untuk menyimpan kode-kode lainnya seperti kode bahasa Jepang, Cina, Thailand dan sebagainya.

Nah itulah hasil dari browsing mengenai ASCII. Dan saatnya untuk experimen menampilkan kode ASCII tersebut, untuk membuat kode ASCII sangat mudah dengan menekan tombol Alt+[nomor nilai ANSI (desimal)]. Sebagai contoh, tekan kombinasi tombol Alt+87 untuk karakter huruf latin "W" kapital.

Berikut Hasil experiment (Sebenernya ga ada kerjaan sih hehee.. p ). Untuk mempermudah kita buat sepuluh-sepuluh yah bigsmile

  • ALT+[1-10]
    ☺ ☻ ♥ ♦ ♣ ♠ • ◘ ○ ◙
  • ALT+[11-20]
    ♂ ♀ ♪ ♫ ☼ ► ◄ ↕ ‼ ¶
  • ALT+[21-30]
    § ▬ ↨ ↑ ↓ → ← ∟ ↔ ▲
  • ALT+[31-40]
    ▼ ! " # $ % & ' ( [ALT+32 = spasi]
  • ALT+[41-50]
    ) * + , - . / 0 1 2
  • ALT+[51-60]
    3 4 5 6 7 8 9 : ; <
  • ALT+[61-70]
    = > ? @ A B C D E F
  • ALT+[71-80]
    G H I J K L M N O P
  • ALT+[81-90]
    Q R S T U V W X Y Z
  • ALT+[91-100]
    [ \ ] ^ _ ` a b c d
  • ALT+[101-110]
    e f g h i j k l m n
  • ALT+[111-120]
    o p q r s t u v w x
  • ALT+[121-130]
    y z { | } ~ ⌂ Ç ü é
  • ALT[131-140]
    â ä à å ç ê ë è ï î
  • ALT[141-150]
    ì Ä Å É æ Æ ô ö ò û
  • ALT+[151-160]
    ù ÿ Ö Ü ¢ £ ¥ ₧ ƒ á
  • ALT+[161-170]
    í ó ú ñ Ñ ª º ¿ ⌐ ¬
  • ALT+[171-180]
    ½ ¼ ¡ « » ░ ▒ ▓ │ ┤
  • ALT+[181-190]
    ╡ ╢ ╖ ╕ ╣ ║ ╗ ╝ ╜ ╛
  • ALT[191-200]
    ┐ └ ┴ ┬ ├ ─ ┼ ╞ ╟ ╚
  • ALT+[201-210]
    ╔ ╩ ╦ ╠ ═ ╬ ╧ ╨ ╤ ╥
  • ALT+[211-220]
    ╙ ╘ ╒ ╓ ╫ ╪ ┘ ┌ █ ▄
  • ALT+[221-230]
    ▌ ▐ ▀ α ß Γ π Σ σ µ
  • ALT+[231-240]
    τ Φ Θ Ω δ ∞ φ ε ∩ ≡
  • ALT+[241-250]
    ± ≥ ≤ ⌠ ⌡ ÷ ≈ ° ∙
  • ALT+[251-260]
    √ ⁿ ² ■   Ā ā Ă ă Ą
  • ALT+[261-270]
    ą Ć ć Ĉ ĉ Ċ ċ Č č Ď
  • ALT+[271-280]
    ď Ě ě Ĝ ē Ĕ ĕ Ė ė Ę
  • ALT+[281-290]
    ę Ě ě Ĝ ĝ Ğ ğ Ġ ġ Ģ
  • ALT+[291-300]
    ģ Ĥ ĥ Ħ ħ Ĩ ĩ Ī ī Ĭ


Huffff... capek juga yah, sampai sini ajah yah, kalian bisa lanjutkan dengan kombinasi angka yang kalian mau, silahkan mencoba yah..

Ane masih belajar mohon maaf bila ada salah bigsmile


Ini Sumber-Sumber blog yang ane copy buat penjelasan ASCII, makasih yahh bigsmile

http://id.wikipedia.org/wiki/ASCII
http://en.wikipedia.org/wiki/ASCII
http://prodisi.wordpress.com/category/tanya-jawab-si/pemrograman/apa-itu-kode-ascii/
http://id.answers.yahoo.com/question/index?qid=20070927052748AAWLE5i

LayoutInflater

Duh jumpa lagi p
Sebelum lupa nih. Beberapa menit yang lalu kan kita sudah mencoba membuat simple adapter, jika kita mengextends ke BaseAdapter pasti mesti unimplement 4 methods salah satunya method getView(). Pada method getView() ini untuk menampilkan data dalam ListView ada dua cara yaitu dengan cara menggunakan coding seperti ini

LinearLayout layout = new LinearLayout(activity);
TextView text1      = new TextView(activity);
TextView text2      = new TextView(activity);
ImageView image     = new ImageView(activity);


dan ada satu lagi caranya dengan menggunakan LayoutInflater, yaitu kita membuat xml dan kemudian kita menginflate LinearLayout, TextView dan ImageView dari xml yang kita buat tersebut. Sebagai catatan jika kita melakukan ini maka kita harus memisahkan xml ini dengan xml yang di gunakan pada ActivityAdapter karena jika kita gabungkan LayoutInflater ini tidak akan berkerja sebagaimana sepertinya. Oke kita Lanjut

Step 1. Buat xml dengan nama "xml_adapter.xml".
Catt: Dlm membuat nama xml jgn menggunakan huruf besar.

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

	<LinearLayout android:layout_width="fill_parent"
		android:layout_height="fill_parent" android:orientation="horizontal"
		android:layout_marginTop="10dip" android:layout_marginLeft="30dip"
		android:layout_marginBottom="10dip">

		<ImageView android:id="@+id/imageView" android:layout_width="wrap_content"
			android:layout_height="wrap_content" android:src="@drawable/icon" />
		<LinearLayout android:layout_width="fill_parent"
			android:layout_height="wrap_content" android:orientation="horizontal"
			android:layout_marginTop="10dip" android:layout_marginLeft="8dip">
			<TextView android:id="@+id/textView1" android:layout_width="wrap_content"
				android:layout_height="wrap_content" android:text="Text1"
				android:layout_marginRight="30dip" />
			<TextView android:id="@+id/textView2" android:layout_width="wrap_content"
				android:layout_height="wrap_content" android:text="Text1"/>
		</LinearLayout>
	</LinearLayout>
</LinearLayout>



Step 2. Pada class "AdapterModel" kita rubah sedikit pada method getView() menjadi :
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ObjectModel obj = object.get(position);
				
		LinearLayout layout = (LinearLayout)View.inflate(activity, R.layout.xml_adapter, null);
			
		TextView text1  = (TextView)layout.findViewById(R.id.textView1);
		TextView text2  = (TextView)layout.findViewById(R.id.textView2);
		ImageView image = (ImageView)layout.findViewById(R.id.imageView);
		
		text1.setText(obj.getText1());
		text2.setText(obj.getText2());
		image.setImageResource(obj.getImage());
		
		return layout;
	}



atau juga kita dapat menggunakan static class ViewHolder, maka akan seperti :
@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ObjectModel obj = object.get(position);
		ViewHolder holder;
		
		LinearLayout layout = (LinearLayout)View.inflate(activity, R.layout.xml_adapter, null);
		
		holder = new ViewHolder();
		
		holder.text1 = (TextView)layout.findViewById(R.id.textView1);
		holder.text2 = (TextView)layout.findViewById(R.id.textView2);
		holder.image = (ImageView)layout.findViewById(R.id.imageView);
		
		holder.text1.setText(obj.getText1());
		holder.text2.setText(obj.getText2());
		holder.image.setImageResource(obj.getImage());
		
		return layout;
	}
	
	static class ViewHolder{
		TextView text1;
		TextView text2;
		ImageView image;
	}


Dan hasilnya tidak jauh berbeda seperti sebelumnya



Nah segini dulu yah penggunaan LayoutInflater dalam membuat Adapter. Tinggal kalian pilih sendiri mau menggunakan LayoutInflater tau code langsung, kalo menurut ane sendiri sih lebih enak menggunakan LayoutInflater karna kita dapat dengan mudah mengatur tata letak object-object yang akan kita buat dan bisa menjadi lebih rapih bigsmile

Sampai jumpa lagi yahhhh cool

Custome Adapter

Haii..
Jumpa lagi nih bigsmile

Beberapa waktu yang lalu kita telah memahani sedikit mengenai konsep dari suatu adapter, nah saat ini ane mencoba untuk membuat suatu adapter yang sederhana. Dimana project ini ane namain "Simple Adapter", dalam membuat project ini kita akan membutuhkan 3 buah class. Class yang pertama berupa activity, yaitu class yang digunakan untuk memanggil adapter dan yang akan menjadi main class. Class yang kedua yaitu class model, dimana pada class ini berisikan object-object yang akan kita gunakan pada adapter. Misalkan adapter yang akan dibuat berupa gambar, text dan text. Maka kita buat tiga object dengan tipe Integer, String dan String. Dan class yang terakhir adalah class adapter, pada class ini akan extends ke BaseAdapter dimana pada class inilah kita akan membuat adapter. Tidak perlu panjang lebar mari kita mulai.
Step 1. Buat android project baru.


Setelah kita membuat project baru maka akan terbentuk Class yang namanya ActivityAdapter. Untuk saat ini kita tinggal dahulu, karna class ini akan kita gunakan pada tahap terakhir.

Step 2. Buat Class "ObjectModel", pada class ini kita akan mendefinisikan/ membuat object serta getter dan setter.

package com.example.adapter;

public class ObjectModel {
	private String text1;
	private String text2;
	private Integer image;
	public String getText1() {
		return text1;
	}
	public void setText1(String text1) {
		this.text1 = text1;
	}
	public String getText2() {
		return text2;
	}
	public void setText2(String text2) {
		this.text2 = text2;
	}
	public Integer getImage() {
		return image;
	}
	public void setImage(Integer image) {
		this.image = image;
	}
}



Jika kita menggunakan eclipse untuk membuat getter dan setter cukup mudah, setelah kita membuat object klik menu Source -> Generate Getters and Setter. Kemudian pilih object mana yg mau dibuat getters and setters and then Finish, jadilah getters and setter simple kan bigsmile

Step 3. Buat Class baru pada package yang sama dengan nama "AdapterModel".
package com.example.adapter;

import java.util.ArrayList;

import android.app.Activity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

public class AdapterModel extends BaseAdapter{
	
	private ArrayList<ObjectModel> object;
	private Activity activity;
	
	public AdapterModel(ArrayList<ObjectModel> object, Activity activity) {
		this.object = object;
		this.activity = activity;
	}

	@Override
	public int getCount() {
		return object.size();
	}

	@Override
	public Object getItem(int position) {
		return object.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ObjectModel obj = object.get(position);
		
		LinearLayout layout = new LinearLayout(activity);
		TextView text1      = new TextView(activity);
		TextView text2      = new TextView(activity);
		ImageView image     = new ImageView(activity);
		
		text1.setText(obj.getText1());
		text2.setText(obj.getText2());
		image.setImageResource(obj.getImage());
		
		text1.setPadding(10, 25, 5, 25);
		text2.setPadding(10, 25, 5, 50);
		image.setPadding(10, 0, 25, 0);
		
		layout.setPadding(0, 5, 0, 0);
		
		layout.addView(text1);
		layout.addView(text2);
		layout.addView(image);
		
		return layout;
	}
}


Code diatas menjelaskan bahwa kita membuat custome adapter dengan mengextends ke BaseAdapter dan pada class tersebut kita mendefinisikan dua buat object. Object yang pertama berupa ArrayList dengan tipe class ObjectModel, yaitu class yang telah kita buat sebelumnya. Karna nantinya kita akan membuat data dalam bentuk array. Dan object yang kedua berupa Activity, Activity ini maksudnya sapa sih yang akan menerima atau menampilkan nilai yang dikembalikan oleh adapter ini. Nah oleh karena itulah kita membuat constructor dengan parameter ArrayList dan Activity. Sewaktu kita mengextends ke BaseAdapter maka kita diwajibkan untuk mengunimplement method. Maksudnya adalah method yang harus atau wajib dan kudu dimiliki oleh class yang mengextendsnya. Method tersebuta adalah getCount(), getItem(), getItemId(), dan getView(). Method getCount() ini maksudnya adalah seberapa banyak sih data yang dimiliki oleh ArrayList tersebut dengan kata lain berapa banyak data yang harus ditampilkan oleh adapter. Method getItem(int position) method yang digunakan untuk mengetahui pada posisi data mana adapter ini bekerja. getItemId(int position) untuk mendapatkan baris Id berdasarkan posisi dari list. Dan getView()untuk menampilkan data pada list berdasarkan posisi dalam arrayList. Pada hakekatnya AdapterModel ini dilakukan secara berulang-ulang sebanyak jumlah data yang ada.

Step 4. Step terakhir, nah setelah membuat object dan adapternya mari kita kembali ke class ActivityAdapter, di class inilah kita akan menentukan data apa saja yang akan kita buat dan tentunya data kita set kedalam class "ObjectModel" dan kita simpan dalam bentuk ArrayList. Class ActivityAdapter kita rubah seperti dibawah ini

package com.example.adapter;

import java.util.ArrayList;

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

public class ActivityAdapter extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        ArrayList<ObjectModel> object = new ArrayList<ObjectModel>();
        
        ObjectModel object1 = new ObjectModel();
        object1.setText1("Object 1");
        object1.setText2("Tulisan");
        object1.setImage(R.drawable.icon);
        
        ObjectModel object2 = new ObjectModel();
        object2.setText1("Object 2");
        object2.setText2("Tulisan");
        object2.setImage(R.drawable.icon);
        
        ObjectModel object3 = new ObjectModel();
        object3.setText1("Object 3");
        object3.setText2("Tulisan");
        object3.setImage(R.drawable.icon);
        
        ObjectModel object4 = new ObjectModel();
        object4.setText1("Object 4");
        object4.setText2("Tulisan");
        object4.setImage(R.drawable.icon);
        
        ObjectModel object5 = new ObjectModel();
        object5.setText1("Object 5");
        object5.setText2("Tulisan");
        object5.setImage(R.drawable.icon);
        
        object.add(object1);
        object.add(object2);
        object.add(object3);
        object.add(object4);
        object.add(object5);
        
        AdapterModel adap = new AdapterModel(object, this);
        ListView lv = (ListView)findViewById(R.id.listview);
        lv.setAdapter(adap);
        
    }
}


Tetapi sebelumnya kita harus melakukan sedikit perubahan pada xml "main" yaitu dengan menambahkan widget ListView.

<?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"
    >
<ListView
	android:id="@+id/listview"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:cacheColorHint="#000000" 
    />
</LinearLayout>

Setelah selesai semua kita running deh maka hasilnya akan seperti iniii :


Sederhana bgt kan hasilnya bigsmile, ini hanyalah dasarnya saja, nanti bisa kalian kembangkan dan ane yakin pasti ide-ide kalian dan adapternya nanti pada bagus smile

Nah segini dulu yah dari ane kalo ada salah mohon dimaapin yeehh namanya juga masih belajar bigsmile sampai jumpa di lain waktu headbang
February 2012
M T W T F S S
January 2012March 2012
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29