本帖最后由 ymq_2012 于 2014-09-26 15:18:54 编辑

解决方案 »

  1.   

    如果你的数据源不为空的话那么一定是你的adapter出问题了package com.example.samsa;
     
    import java.net.URL;
    import java.util.List;
    import java.util.Map;
     
    import android.content.Context;
    import android.net.Uri;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
     
    public class emaginfoAdapter extends BaseAdapter {
        private LayoutInflater mInflater = null;
        private List<Map<String, String>> data;
     
        emaginfoAdapter(Context context, List<Map<String, String>> data) {
            // 加载布局
            this.mInflater = LayoutInflater.from(context);
            this.data = data;
        }
     
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return data.size();
        }
     
        @Override
        public Object getItem(int arg0) {
            // TODO Auto-generated method stub
            return data.get(arg0);
        }
     
        @Override
        public long getItemId(int arg0) {
            // TODO Auto-generated method stub
            return arg0;
        }
     
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            ViewHolder holder = null;
            // 如果缓存convertView为空,则需要创建View
            if (convertView == null) {
                holder = new ViewHolder();
                // 根据自定义的Item布局加载布局
                convertView = mInflater.inflate(R.layout.emaginfo_list, null);
                holder.name = (TextView) convertView.findViewById(R.id.magname);
                holder.title = (TextView) convertView.findViewById(R.id.emagtitle);
                holder.leftImgView=(ImageView)convertView.findViewById(R.id.left_img_emag);
                holder.topImgView=(ImageView)convertView.findViewById(R.id.top_img_emag);
                // 将设置好的布局保存到缓存中,并将其设置在Tag里,以便后面方便取出Tag
                convertView.setTag(holder);
            } else {
                holder = (ViewHolder) convertView.getTag();
            }
            holder.name.setText((String) data.get(position).get("magname"));
            Uri url_left=Uri.parse((String)data.get(position).get("coverimg"));
            Uri url_top=Uri.parse((String)data.get(position).get("bannerimg"));
            holder.leftImgView.setImageURI(url_left);
            holder.topImgView.setImageURI(url_top);
            holder.title.setText((String) data.get(position).get("title"));
             
         
            return convertView;
        }
     
    }
      

  2.   

    数据不为空,调试显示,adapter我看不出来哪里出错了
      

  3.   

    我调试没有进入adapter的getView中
      

  4.   

     @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return 0;
        }
     
        @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;
        }很明显是这几句出问题,你的getCount()返回空,也就是说列表的数量为Null,getItemId返回0,所以ListView就不显示了,你都没有看清楚1L的代码就敢说自己没问题,仔细点,不要老是盯着getView方法,请把它改成如下:
    public class emaginfoAdapter extends BaseAdapter {
        private LayoutInflater mInflater = null;
        private List<Map<String, String>> data;
      
        emaginfoAdapter(Context context, List<Map<String, String>> data) {
            // 加载布局
            this.mInflater = LayoutInflater.from(context);
            this.data = data;
        }
      
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return data.size();
        }
      
        @Override
        public Object getItem(int arg0) {
            // TODO Auto-generated method stub
            return arg0;
        }
      
        @Override
        public long getItemId(int arg0) {
            // TODO Auto-generated method stub
            return arg0;
        }
      
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            ViewHolder holder = null;
            // 如果缓存convertView为空,则需要创建View
            if (convertView == null) {
                holder = new ViewHolder();
                // 根据自定义的Item布局加载布局
                convertView = mInflater.inflate(R.layout.emaginfo_list, null);
                holder.name = (TextView) convertView.findViewById(R.id.magname);
                holder.title = (TextView) convertView.findViewById(R.id.emagtitle);
                holder.leftImgView=(ImageView)convertView.findViewById(R.id.left_img_emag);
                holder.topImgView=(ImageView)convertView.findViewById(R.id.top_img_emag);
                // 将设置好的布局保存到缓存中,并将其设置在Tag里,以便后面方便取出Tag
                convertView.setTag(holder);
            } else {
                holder = (ViewHolder) convertView.getTag();
            }
            holder.name.setText((String) data.get(position).get("magname"));
            Uri url_left=Uri.parse((String)data.get(position).get("coverimg"));
            Uri url_top=Uri.parse((String)data.get(position).get("bannerimg"));
            holder.leftImgView.setImageURI(url_left);
            holder.topImgView.setImageURI(url_top);
            holder.title.setText((String) data.get(position).get("title"));
              
          
            return convertView;
        }
      
    }