首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

baseAdapter listview不显示,该怎么解决

2012-04-14 
baseAdapter listview不显示Java codeprivate ArrayListHashMapString,Object getData(){try {Documen

baseAdapter listview不显示

Java code
    private ArrayList<HashMap<String,Object>> getData(){                  try {                            Document doc = Jsoup.connect("http://www.3dmgame.com/").timeout(30000).get();                Elements et = doc.getElementsByAttributeValue("class", "newList").select("li").select("a");                for(Element e : et){                    HashMap<String,Object> map = new HashMap<String, Object>();                    String text = e.text().replace(Jsoup.parse("&nbsp;").text(), " ");                    map.put("text", text);                                        list.add(map);                }            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        return list;            }

这段代码获得的数据,使用simpleAdapter的时候可以正确显示
但是是用baseadapter的时候就不显示东西,也不提示错误
baseadapter如下:
Java code
private class NewsAdapter extends BaseAdapter{        @Override        public int getCount() {            // TODO Auto-generated method stub            return getData().size();        }        @Override        public Object getItem(int arg0) {            // TODO Auto-generated method stub            return null;        }        @Override        public long getItemId(int arg0) {            // TODO Auto-generated method stub            return 0;        }        @Override        public View getView(int arg0, View arg1, ViewGroup arg2) {            // TODO Auto-generated method stub            arg1 = LayoutInflater.from(getApplicationContext()).inflate(R.layout.newslist, null);            TextView tv = (TextView)arg1.findViewById(R.id.textView1);            ImageView iv = (ImageView)arg1.findViewById(R.id.imageView1);                        tv.setText(getData().get(arg0).get("text").toString());            return arg1;        }            }

但是把getData()写成这样
Java code
private ArrayList<HashMap<String,Object>> getData(){         list = new ArrayList<HashMap<String,Object>>();         HashMap<String,Object> map = new HashMap<String, Object>();         for(int i = 0; i < 2; i++){         map.put("text", "dfdfadf");         map.put("text", "fdedaf");         }         list.add(map);        return list;            }

这样用baseadapter就可以用了,为什么啊

[解决办法]
你确定第一个list里有数据
[解决办法]
private class RosterAdapter extends BaseAdapter {

private LayoutInflater inflater;

private Context context;

public RosterAdapter(Context context) {
this.context = context;
inflater = LayoutInflater.from(context);
}

@Override
public int getCount() {
return userinfos.size();
}

@Override
public Object getItem(int position) {
return userinfos.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

private class ViewHolder {
TextView user;
TextView status;
}

@Override
public View getView(int position, View convertView, ViewGroup viewGroup) {

User user = userinfos.get(position);
ViewHolder viewHolder;
if (convertView == null) {


convertView = inflater.inflate(
android.R.layout.simple_list_item_2, null);
viewHolder = new ViewHolder();
viewHolder.user = (TextView) convertView
.findViewById(android.R.id.text1);
viewHolder.status = (TextView) convertView
.findViewById(android.R.id.text2);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}

// holder.user.setText(user.getUser());
System.out.println("=============getview");
System.out.println(hashOnLine.toString());
System.out.println("user:"+user.getUser());
viewHolder.user.setText(user.getUser());

String isOnline=hashOnLine.get(user.getUser());
if(isOnline==null)
isOnline="离线";
viewHolder.status.setText(hashOnLine.get(user.getUser()));

return convertView;
}


你参考一下这个
[解决办法]
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
你返回的都是空的,没东西
[解决办法]

探讨

引用:

你确定第一个list里有数据

确定啊,用simpleadapter都能输出了

[解决办法]
探讨

@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int a……

热点排行