问题描述
- Android自定义适配器geiView没有执行,在线等,求大神解决。。。。
-
package com.pingjiasoft.learnenglish;import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;import com.nostra13.universalimageloader.core.ImageLoader;
import Extend.HttpDownload;
import Extend.ListSimpleAdapter;
import Global.Interface;
import android.content.Context;
import android.content.res.Resources;
import android.os.AsyncTask;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;public class XiangQingAdapter extends BaseAdapter{
private List<HashMap<String, Object>> list; private LayoutInflater layoutinflater; private ImageLoader imageLoader; private g gable; private Context context; public XiangQingAdapter(Context context, List<HashMap<String, Object>> list, g gable, ImageLoader imageLoader) { // 实例化ImageLoaderConfiguration this.context = context; this.gable = gable; this.imageLoader = imageLoader; this.layoutinflater = LayoutInflater.from(context); this.list = list; System.out.println("进入ListAdapter"); System.out.println(list.size()); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i).get("file")); } } @Override public int getCount() { System.out.println("qqqqqq"); // TODO Auto-generated method stub return list.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return list.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { System.out.println("进入getview"); convertView = layoutinflater.inflate(R.layout.news_list_item, null); System.out.println(list.size()); HashMap<String, Object> HashMap =list.get(position); ImageView iv = (ImageView) convertView.findViewById(R.id.news_list_iv); TextView tv = (TextView) convertView.findViewById(R.id.news_list_tv); TextView dt = (TextView) convertView.findViewById(R.id.news_list_date); String file = (String) HashMap.get("file"); System.out.println(file+"111111"); String name = (String) HashMap.get("name"); System.out.println(name+"111111"); String lessonType = (String) HashMap.get("lessonType"); String img = (String) HashMap.get("image"); int image = Integer.parseInt(img); if (image==0) { imageLoader.displayImage("http://le.xianzaixue.com/image/lesson/"+ lessonType + ".jpg", iv, gable.initDisplayImageOptions()); }else if(image==1){ String folder = (String) HashMap.get("folder"); imageLoader.displayImage("http://le.xianzaixue.com/"+folder+"/"+file.substring(0, 8)+"/"+file.substring(8, 14)+".jpg", iv, gable.initDisplayImageOptions()); } tv.setText(name); dt.setText(file.substring(0, 4) + "-" + file.substring(4, 6) + "-" + file.substring(6, 8)); return convertView; }
}
可以打印出list的file里面的值,但是getCount里面打印的“qqqq”只有7次,而geiView没有执行,求大神解释下,谢谢了。。。。。。。
解决方案
http://www.itnose.net/detail/6082452.html
解决方案二:
Android 自定义适配器
Android自定义适配器
Android中常用适配器及定义自己的适配器
解决方案三:
如果getView没有执行直能说明你的getCount()返回的是0,或者getItem()返回的是null,注意自己的数据是否为空,多进行if(XXX==null)的判断
解决方案四:
你这个adapter是用在哪里的,既然getCount返回不是0,那估计是你适配器使用的地方有问题。
解决方案五:
不要使用hashmap,那个list.getCount方法,用list