Android - Custom Adapter Problem
- by Ryan
Hello,  I seem to be having a problem with my Custom Adapter view.  When I display the list, it only displays a white screen.  Here is how it works:
1.) I send a JSON request
2.) populate the ArrayList with the returned results
3.) create a custom adapter
4.) then bind the adapter.  
Here is steps 2-4
private void updateUI()
{    
ListView myList = (ListView) findViewById(android.R.id.list);
   itemList = new ArrayList();
Iterator it = data.entrySet().iterator();
   while (it.hasNext()) 
   {
    //Get the key name and value for it
    Map.Entry pair = (Map.Entry)it.next();
    String keyName = (String) pair.getKey();
    String value = pair.getValue().toString();
    if (value != null)
    {
     ListItem li = new ListItem(keyName, value, false);
     itemList.add(li);
    }
   }
CustomAdapter mAdapter = new CustomAdapter( 
     mContext,
     itemList); 
myList.setAdapter(mAdapter); //Bind the adapter to the list 
//Tell the dialog it's cool now.
   dismissDialog(0);
//Show next screen
   flipper.setInAnimation(inFromRightAnimation());
   flipper.setOutAnimation(outToRightAnimation());
   flipper.showNext(); 
} 
And here is my CustomAdapter class:
import java.util.List;
import android.R.color;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
class MyAdapterView extends RelativeLayout 
{
 public MyAdapterView(Context c, ListItem li) 
 {
  super( c );
RelativeLayout rL = new RelativeLayout(c);
  RelativeLayout.LayoutParams containerParams =
   new RelativeLayout.LayoutParams(
     ViewGroup.LayoutParams.FILL_PARENT,
     ViewGroup.LayoutParams.FILL_PARENT);
  rL.setLayoutParams(containerParams);
  rL.setBackgroundColor(color.white);
ImageView img = new ImageView (c);
  img.setImageResource(li.getImage());
  img.setPadding(5, 5, 10, 5);
  rL.addView(img, 48, 48);
TextView top = new TextView(c);
  top.setText(li.getTopText());
  top.setTextColor(color.black);
  top.setTextSize(20);
  top.setPadding(0, 20, 0, 0);
  rL.addView(top,ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
TextView bot = new TextView( c );
  bot.setText(li.getBottomText());
  bot.setTextColor(color.black);
  bot.setTextSize(12);
  bot.setPadding(0, 0, 0, 10);
  bot.setAutoLinkMask(1);
  rL.addView(bot,ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
}
public class CustomAdapter extends BaseAdapter {
private Context context;
 private List itemList;
public CustomAdapter(Context c, List itemL ) { 
  this.context = c;
  this.itemList = itemL;
 }
public int getCount() {
  return itemList.size();
 }
public Object getItem(int position) {
  return itemList.get(position);
 }
public long getItemId(int position) {
  return position;
 }
@Override
 public View getView(int position, View convertView, ViewGroup parent) { 
  ListItem li = itemList.get(position);
  return new MyAdapterView(this.context, li);
 }
}
Does anyone have any idea why this displays a white screen upon completion??  Thanks in advance!