80,331
社区成员
发帖
与我相关
我的任务
分享
09-02 17:14:30.694 E/AndroidRuntime( 5794): Caused by: java.lang.NullPointerException
09-02 17:14:30.694 E/AndroidRuntime( 5794): at ndroid.app.ListActivity.setListAdapter(ListActivity.java:265)
final class MySimpleAdapter extends SimpleAdapter {
private String [] mFrom;
private int[] mTo;
protected LayoutInflater mInflater;
private int mResourcesId;
private List<Map<String, Object>> mListData = null;
SpeedDialAdapter(Context context, List<Map<String, Object>> items,
int resourceId, String[] from, int []to ) {
super(context, items, resourceId, from, to);
mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mListData = items;
mResourcesId = resourceId;
mTo = to;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v;
if(null == convertView)
{
Log.i(TAG,"geView");
v = mInflater.inflate(mResourcesId, parent, false);
int count = mTo.length;
View[] views = new View[count];
for(int i=0;i<count;i++)
{
views[i] = v.findViewById(mTo[i]);
}
v.setTag(views);
//if(mListData)
Map<String, Object> map = mListData.get(position);
Log.i(TAG, "position is " + position);
String label = map.get(LABEL_KEY) == null? "": map.get("label").toString();
String number = map.get(NUMBER_KEY) == null? "": map.get("number").toString();
String count_label = map.get("count")== null ? "" :map.get("count").toString();
String line = map.get("line") == null? "":map.get("line").toString();
if(number.equals(""))
{
setViewImage(((ImageView)views[ICON_INDEX]),R.drawable.add_icn);
}else
{
setViewImage(((ImageView)views[ICON_INDEX]),R.drawable.delete_icn);
}
if(line1.equals(""))
{
setViewText(((TextView)views[LINE1_INDEX]),number);
}
else
{
if(number.equals(""))
{
Log.i(TAG,"Error,it should not exist");
}
setViewText(((TextView)views[LINE1_INDEX]),line);
setViewText(((TextView)views[NUMBER_INDEX]),number);
setViewText(((TextView)views[LABEL_INDEX]),label);
}
if(count_label.equals(""))
{
Log.i(TAG,"no Label");
setViewText(((TextView)views[COUNT_INDEX]),String.valueOf(position));
}
else
{
setViewText(((TextView)views[COUNT_INDEX]),count_label);
}
return v;
}else
{
return convertView;
}
}
@Override
public int getCount()
{
return mListData.size();
}
@Override
public Object getItem(int position) {
return mListData.get(position);
}
}