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!