当前位置: 代码迷 >> Android >> baseAdapter listview不显示,该怎么解决
  详细解决方案

baseAdapter listview不显示,该怎么解决

热度:56   发布时间:2016-05-01 21:39:52.0
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) {
  相关解决方案