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如下:
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()写成这样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就可以用了,为什么啊

解决方案 »

  1.   

    确定啊,用simpleadapter都能输出了
      

  2.   

    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;
    }
    你参考一下这个
      

  3.   

        @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;
            }
    你返回的都是空的,没东西
      

  4.   

    好像第一个少了点什么,list没初始化
    list = new ArrayList<HashMap<String,Object>>();