List field in blackberry , event click listener not working -


i working on bb os v5.0. have managed list appear on screen. getting data webservice , adding vector.

now want find out onclick, item clicked , accordingly perform operation. trying display alert. i'm not getting alert.

here code :

in mainscreen , added fieldmanager=new verticalfieldmanager(); , add(fieldmanager);

void fetchalbumsforletter(string letter) {     status.show("processing ....", 3000);     fieldmanager.deleteall();      verticalfieldmanager top = new verticalfieldmanager(manager.no_horizontal_scroll | manager.no_horizontal_scrollbar | manager.vertical_scroll | manager.vertical_scrollbar | field.use_all_width){         public void paint(graphics graphics) {             graphics.setbackgroundcolor(0x00290008);             graphics.setcolor(color.white);             graphics.clear();             graphics.drawbitmap(0, 0, sha.getwidth(),             sha.getheight(), sha, 0, 0);             super.paint(graphics);         }     };     add(top);      customlistfield4 list4 = new customlistfield4(null){         protected boolean navigationclick(int status, int time) {             getvalue4();             return true;         }     };     fieldmanager.add(list4); }  protected void getvalue4() {     field f = getfieldwithfocus();     if (f instanceof listfield) {         listfield l = (listfield) f;         final int index = l.getselectedindex();         historyitem _contactslist = (historyitem) customlistfield4.val4.elementat(index);         final string id = _contactslist.getname();         dialog.alert(id+"");     } } 

please me resolve this

edit

class customlistfield4 extends listfield implements listfieldcallback {      public customlistfield4(vector data) {         super(0, listfield.multi_select);         final tablerowmanager row = new tablerowmanager() {             public void paint(graphics g) {                 // g.fillrect(0, 0, getwidth(), getheight());                 g.setcolor(0x0f3e19b);                 g.clear();                 super.paint(g);             }         };          bitmap icon = bitmap.getbitmapresource("devil skype.png");         horizontalfieldmanager h=new horizontalfieldmanager();         h.add(new bitmapfield(icon));         //h.add(new bitmapfield(song.getthumb()));         h.add(new labelfield(song.getalbumname()));         //h.add(new labelfield(row1.getlanguage()));         //h.setmargin(0,0,50,0);         //dialog.alert(song.getname());          verticalfieldmanager vfm=new verticalfieldmanager();         vfm.add(h);         //vfm.add(new labelfield(song.getartist()));         row.add(vfm);         contacts.addelement(row);     }      setsize( contacts.size()); }  // listfieldcallback implementation public void drawlistrow(listfield listfield, graphics g, int index, int y, int width) {     listfield.setrowheight(index,107);     customlistfield4 list = (customlistfield4) listfield;     tablerowmanager rowmanager = (tablerowmanager) customlistfield4.contacts.elementat(index);     rowmanager.drawrow(g, 0, y, width, list.getrowheight()); }  public class tablerowmanager extends manager {     public tablerowmanager() {         super(0);     }    

you calling getfieldwithfocus() give manager. need leaf field

protected void getvalue4() {    field f = getleaffieldwithfocus();    if (f instanceof listfield) {        //your code    } } 

Comments