Android - Custom Adapter Problem
Posted
by Ryan
on Stack Overflow
See other posts from Stack Overflow
or by Ryan
Published on 2010-06-07T19:48:05Z
Indexed on
2010/06/07
19:52 UTC
Read the original article
Hit count: 807
android
|arrayadapter
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!
© Stack Overflow or respective owner