As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com Class List As’ad Djamalilleil http://kampusku.my.id asad.kom@gmail.com
Class List List adalah sebuah versi full-screen dari ChoiceGroup yang memiliki sebagian besar dari interface pemrogramannya Kegunaannya yang umum adalah dikelompokkan ke dalam sebuah interface bernama Choice, yang memiliki metode-metode berikut:
public int append(String string, Image image); public void delete(int index); public Image getImage(int index); public int getSelectedFlags(boolean[] flags); public int getSelectedIndex(); public String getString(int index); public void insert(int index, String string, Image image); public boolean isSelected(int index); public void set(int index, String string, public void setSelectedFlags(boolean[] flags); public void setSelectedIndex(int index, boolean selected); public int size();
List memiliki dua constructor yang sama dengan ChoiceGroup dan cara kerjanya pun sama: public List(String title, int type); public List(String title, int type, String[] strings, Image[] images); Perbedaannya terdapat pada parameter pertama yang ditampilkan sebagai judul pada layar List, dimana digunakan sebagai label pada ChoiceGroup
List juga dapat menampilkan pilihan secara EXCLUSIVE dan MULTIPLE, serta memiliki mode ketiga, yaitu Choice.IMPLICIT dimana tidak dapat digunakan pada ChoiceGroup Mode IMPLICIT membuat List berperilaku seperti list standard atau layaknya menu pada Java untuk aplikasi desktop Berikut adalah contoh potongan kodenya:
List ls = new List("List", List.IMPLICIT); Image red = Image.createImage("/red.png"); Image green = Image.createImage("/green.png"); Image blue = Image.createImage("/blue.png"); ls.append("Red", red); ls.append("Green", green); ls.append("Blue", blue); Karena List bukanlah sebuah Item, maka perubahan pada status seleksi tidak dilaporkan ke ItemStateListener Perubahannya dapat dideteksi dengan menambahkan sebuah Command yang ditempatkan di dalam List dan dihubungkan ke CommandListener
Tidak ada Command yang dapat dihubungkan dengan aksi seleksi pada List List menyediakan sebuah Command bertipe private, yaitu List.SELECT_COMMAND yang menunjukkan bahwa metode commandAction() telah dipanggil sebagai hasil dari seleksi IMPLICIT dari List Argumen Displayable menerima objek yang berupa List itu sendiri Untuk menghubungkan CommandListener dengan List, digunakan metode setCommandListener() yang diwarisi dari Displayable:
List ls = new List("List", Choice.IMPLICIT); ls.setCommandListener(new CommandListener(){ public void commandAction(Command c, Displayable d){ // menangani notifikasi dari List } );
Berikut adalah contoh kode untuk mendeteksi perubahan seleksi pada List: public void commandAction(Command c, Displayable d){ if (c == List.SELECT_COMMAND){ //terjadi aksi seleksi pada List handleChoiceSelection((Choice)d); } else { //memproses yang lain }
Kode di atas hanya berlaku pada List bertipe IMPLICIT saja CommandListener tidak akan diberitahu jika terjadi perubahan seleksi untuk List bertipe MULTIPLE atau EXCLUSIVE Untuk kedua tipe tersebut perlu ditambahkan Command untuk membaca seleksi pada List
Aplikasi Demo List 1 import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.lcdui.List; public class DemoList extends MIDlet{ private Display disp; private List ls; public DemoList(){ disp = Display.getDisplay(this); }
public void startApp(){ ls = new List("Demo list", List.EXCLUSIVE); ls.append("Pertama", null); ls.append("Kedua", null); ls.append("Ketiga", null); ls.append("Keempat", null); disp.setCurrent(ls); } public void pauseApp(){} public void destroyApp(boolean unconditional){}
Aplikasi Demo List 2 import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.lcdui.List; public class DemoList extends MIDlet{ private Display disp; private List ls; public DemoList(){ disp = Display.getDisplay(this); }
public void startApp(){ ls = new List("Demo list", List.MULTIPLE); ls.append("Pertama", null); ls.append("Kedua", null); ls.append("Ketiga", null); ls.append("Keempat", null); disp.setCurrent(ls); } public void pauseApp(){}
public void destroyApp(boolean unconditional){}
Aplikasi Demo List 3 import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.lcdui.List; public class DemoList extends MIDlet{ private Display disp; private List ls; public DemoList(){ disp = Display.getDisplay(this); }
public void startApp(){ ls = new List("Demo list", List.IMPLICIT); ls.append("Pertama", null); ls.append("Kedua", null); ls.append("Ketiga", null); ls.append("Keempat", null); disp.setCurrent(ls); } public void pauseApp(){}
public void destroyApp(boolean unconditional){}