How to fill rendere by code?

7 views
Skip to first unread message

samer.als...@gmail.com

unread,
Jul 24, 2016, 3:59:05 PM7/24/16
to CodenameOne Discussions
Hello
I created renderer (MyRenderer) by blank container and set it to list (MyList).

     @Override
     protected boolean initListModelMyList(List list) {
            Vector vector = new Vector();
       
            data = (Vector<Hashtable<String, String>>) Storage.getInstance().readObject("data");
       
            if (data == null) {
                  data = new Vector<Hashtable<String, String>>();
            }

            Container renderer = findMyRenderer(list);
       
        for(int i = 0; i < data.getSize(); i++) {
            Hashtable<String, String> ha = data.get(i);
           
            //System.out.println(ha.get("name"));
           
            renderer.setPropertyValue("name", ha.get("name"));
           
            vector.add(dataList.getItemAt(i));
        }
       
        list.setModel(new com.codename1.ui.list.DefaultListModel(vector));
       
        return true;
       }

       class dataList implements ListModel<Vector<Hashtable<String, String>>>
       {   
               @Override
               public Vector<Hashtable<String, String>> getItemAt(int index) {   
                       if(data != null) {
                               Vector<Hashtable<String, String>> vector = new Vector<Hashtable<String, String>>();
                               Hashtable<String, String> d = data.get(index);
                               //System.out.println(d.get("name"));
                               vector.add(d);
                               return vector;
                        }
                        return null;
                 }
        ........
       }

samer.als...@gmail.com

unread,
Jul 24, 2016, 4:02:13 PM7/24/16
to CodenameOne Discussions, samer.als...@gmail.com
this fire exception

renderer.setPropertyValue("name", ha.get("name"));

How to set data get it from
Hashtable<String, String> ha = data.get(i);

to the renderer ?

Shai Almog

unread,
Jul 24, 2016, 11:49:52 PM7/24/16
to CodenameOne Discussions, samer.als...@gmail.com
In the developer guide we cover GenericListCellRenderer a lot which does that automatically: https://www.codenameone.com/manual/components.html

Notice our recommendation there to not use List but instead use a BoxLayout Y container.
Reply all
Reply to author
Forward
0 new messages