Field Change Listener for Custom ListView in Blackberry? -


i working in application have show contacts in list view. have created list view of vertical field manager , label fields.

i have email field , phone number field on have call on click listener.

i have implemented listener on class failed click event. not show click event.

currently, working below code:

public class customlistview extends verticalfieldmanager implements fieldchangelistener{     private verticalfieldmanager mvfm=null;      private font _allfonts=null;     private font _headingfonts=null;      /**      * @param resultvec      */     public customlistview() {         super(verticalfieldmanager.vertical_scroll);         setmargin(0, 0, 10, 0);          int resolutionwidth = display.getwidth(); // planning 3 fixed resolutions 320, 360 , 480         //handle code different devices         if(resolutionwidth>=480){             _allfonts = applicationfont.explainationfont_18;             _headingfonts = applicationfont.labelfont_18;         }else if(resolutionwidth >=360){             _allfonts = applicationfont.explainationfont_18;             _headingfonts = applicationfont.labelfont_18;         }else{//resolution width <=320             _allfonts = applicationfont.explainationfont_15;             _headingfonts = applicationfont.labelfont_15;         }          int maxlength = constants.country_list.length;         int minlength = 0;         if(maxlength >= 0){             (int = minlength; < maxlength; i++) {                 verticalfieldmanager vfm = getverticalfieldmanager();                 vfm.setmargin(0, 10, 0, 10);                  labelfield countrylabel = new labelfield();                 countrylabel.settext(constants.country_list[i]);                 //countrylabel.setfont(_allfonts);                 countrylabel.setmargin(10, 0, 10, 0);                 horizontalfieldmanager countryhfm = new horizontalfieldmanager(manager.use_all_width);                 countryhfm.add(countrylabel);                 countryhfm.setbackground(backgroundfactory                         .createsolidbackground(constants.lightgreybgcolorcode));                  labelfield addresslabel = new labelfield();                 addresslabel.settext(constants.address_list[i]);                 //addresslabel.setfont(_allfonts);                  labelfield statelabel = new labelfield();                 statelabel.settext(constants.state_list[i]);                 //  statelabel.setfont(_allfonts);                  labelfield citylabel = new labelfield(){                     protected void paint(graphics graphics) {                         graphics.setcolor(constants.darkgreytextcolorcode);                         super.paint(graphics);                     }                 };                 citylabel.settext(constants.city_list[i]);                 //citylabel.setfont(_allfonts);                  labelfield phonelabel = new labelfield(){                     protected void paint(graphics graphics) {                         graphics.setcolor(constants.darkgreytextcolorcode);                         super.paint(graphics);                     }                 };                 phonelabel.settext("phone(s):");                 //phonelabel.setfont(_allfonts);                  labelfield numlabel = new labelfield(){                     protected void paint(graphics graphics) {                         graphics.setcolor(constants.bluetextcolor);                         super.paint(graphics);                     }                 };                 numlabel.settext(constants.phone_list[i]);                 //numlabel.setfont(_allfonts);                  horizontalfieldmanager phonenumberhfm = new horizontalfieldmanager();                 phonenumberhfm.add(phonelabel);                 phonenumberhfm.add(numlabel);                  labelfield emaillabel = new labelfield(){                     protected void paint(graphics graphics) {                         graphics.setcolor(constants.darkgreytextcolorcode);                         super.paint(graphics);                     }                 };                 emaillabel.settext("email:");                 //emaillabel.setfont(_allfonts);                  labelfield emailidlabel = new labelfield(){                     protected void paint(graphics graphics) {                         graphics.setcolor(constants.bluetextcolor);                         super.paint(graphics);                     }                 };                 emailidlabel.settext(constants.email_list[i]);                 //emailidlabel.setfont(_allfonts);                  horizontalfieldmanager emailidhfm = new horizontalfieldmanager();                 emailidhfm.add(emaillabel);                 emailidhfm.add(emailidlabel);                   mvfm = new  verticalfieldmanager(use_all_width /*|focusable*/);                 mvfm.setmargin(20, 0, 20, 0);                 mvfm.add(countryhfm);                 mvfm.add(addresslabel);                 mvfm.add(statelabel);                 mvfm.add(citylabel);                 mvfm.add(phonenumberhfm);                 mvfm.add(emailidhfm);                 mvfm.add(new nullfield(focusable));                  vfm.add(mvfm);                 /*separatorfield separater = new separatorfield(constants.lightgreybgcolorcode);                 separater.setmargin(0, 10, 0, 10);*/                 vfm.add(new separatorfield(constants.lightgreybgcolorcode));                 add(vfm);             }         }     }      private verticalfieldmanager getverticalfieldmanager() {         verticalfieldmanager verticalfieldmanager = new verticalfieldmanager(                 verticalfieldmanager.focusable                 | verticalfieldmanager.field_hcenter                 | verticalfieldmanager.vertical_scroll                 | verticalfieldmanager.use_all_width) {              protected boolean touchevent(touchevent message) {                 if (message.getevent() == touchevent.click) {                     navigationclick(0, 0);                 }                 return super.touchevent(message);             }              public boolean navigationclick(int status, int time) {                 fieldchangenotify(1);                 return true;             }              protected void onfocus(int direction) {                 super.onfocus(direction);                 setbackground(backgroundfactory                         .createsolidbackground(/*0x186def*/constants.whitebgcolorcode));                 invalidate();             }              protected void onunfocus() {                 super.onunfocus();                 setbackground(backgroundfactory                         .createsolidbackground(constants.whitebgcolorcode));                 invalidate();             }         };               return verticalfieldmanager;     }      public void fieldchanged(field field, int context) {     } } 

please suggest, how can build click listener list view.

i think have not understood needed fieldchangelistener.

here simple implementation using fieldchangelistener (note work on os 5.0 , above zoomscreen not available before then).

public myscreen() {             // set displayed title of screen            settitle("test zoomscreen");     buttonfield zoombutton = new buttonfield("zoom screen test");     fieldchangelistener listener=new fieldchangelistener() {         public void fieldchanged(field field, int context) {             encodedimage ei = encodedimage.getencodedimageresource("koala.jpg");             uiapplication.getuiapplication().pushscreen(new zoomscreen(ei));         }     };     zoombutton.setchangelistener(listener);     add(zoombutton); } 

the important steps are:

  1. create field listening changes on - in case, zoombutton.
  2. create fieldchangelistener - in case, separate class listening, note listening done in fieldchanged() method.
  3. connect fieldchangelistener field listening - in case setchangelistener on zoombutton.

i think if review implementation, see have missed out of steps, seem have done (1), not (2) or (3). rather me correcting code, suggest use insight hope above has given you, , correct own code. luck.


Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -