I populate a ListView with a SimpleAdapter. Immediately after doing so, I have a function that tries to loop over the child views to set their background color programmatically. The problem is that the ListView may not have any children immediately after listView.setAdapter() is called. I don't know which callback to stick my function on.
        // A HashMap to store the values for the ListView rows
    List<HashMap<String, String>> aList = new ArrayList<HashMap<String, String>>();
    for (int i = 0; i < steps.length; i++) {
        HashMap<String, String> hm = new HashMap<String, String>();
        hm.put("txt", steps[i]);
        hm.put("icon", Integer.toString(step_images[i]));
        aList.add(hm);
    }
    // Keys used in Hashmap
    String[] from = {"icon", "txt"};
    // Ids of views in layout
    int[] to = {R.id.icon, R.id.txt};
    // Instantiating an adapter to store each items
    // R.layout.listview_steps defines the layout of each item
    SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), aList, R.layout.listview_steps, from, to);
    // Setting the adapter to the listView
    listView.setAdapter(adapter);
    //fixme after the listView adapter is set, the listView may not have any children immediately.
    //I'm not sure which callback to use to properly call refreshStepsListView().. So I'm hacking it and I just wait 250ms
    (new Handler())
            .postDelayed(
                    new Runnable() {
                        public void run() {
                            refreshStepsListView();
                        }
                    }, 250);
 
     
     
    