尝试调用虚拟方法';android.view.view android.view.view.findViewById(int)和#x27;关于空对象引用
我在logcat中有个错误尝试调用虚拟方法';android.view.view android.view.view.findViewById(int)和#x27;关于空对象引用,android,listview,android-fragments,nullpointerexception,Android,Listview,Android Fragments,Nullpointerexception,我在logcat中有个错误 java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference 试图查看列表中的图片,请为此代码创建一个类 我认为方法视图getView中存在错误,但我不知道它到底在哪里,我认为可能在缩略图的定义中 public class userad
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.View.findViewById(int)' on a null object reference
试图查看列表中的图片,请为此代码创建一个类
我认为方法视图getView中存在错误,但我不知道它到底在哪里,我认为可能在缩略图的定义中
public class useradaptor extends BaseAdapter {
private Activity activity;
private LayoutInflater inflater;
private List<user> userItems;
ImageLoader imageLoader = AppController.getInstance().getImageLoader();
public useradaptor(Activity activity, List<user> userItems) {
this.activity = activity;
this.userItems = userItems;
}
@Override
public int getCount() {
return userItems.size();
}
@Override
public Object getItem(int location) {
return userItems.get(location);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
user u = userItems.get(position);
if (imageLoader == null)
imageLoader = AppController.getInstance().getImageLoader();
NetworkImageView thumbNail = (NetworkImageView) convertView.findViewById(R.id.imageview);
thumbNail.setImageUrl(u.getPicture(), imageLoader);
Cache cache = AppController.getInstance().getRequestQueue().getCache();
Cache.Entry entry = cache.get(u.getPicture());
if(entry != null){
try {
String data = new String(entry.data, "UTF-8");
// handle data, like converting it to xml, json, bitmap etc.,
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}else{
// cached response doesn't exists. Make a network call here
}
return convertView;
}
}
公共类UserAdapter扩展了BaseAdapter{
私人活动;
私人充气机;
私人物品清单;
ImageLoader ImageLoader=AppController.getInstance().getImageLoader();
公共用户适配器(活动,列出用户项){
这个。活动=活动;
this.userItems=userItems;
}
@凌驾
public int getCount(){
返回userItems.size();
}
@凌驾
公共对象getItem(int位置){
返回userItems.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
用户u=userItems.get(位置);
如果(imageLoader==null)
imageLoader=AppController.getInstance().getImageLoader();
NetworkImageView缩略图=(NetworkImageView)convertView.findViewById(R.id.imageview);
setImageUrl(u.getPicture(),imageLoader);
缓存缓存=AppController.getInstance().getRequestQueue().getCache();
Cache.Entry=Cache.get(u.getPicture());
if(条目!=null){
试一试{
字符串数据=新字符串(entry.data,“UTF-8”);
//处理数据,如将其转换为xml、json、位图等。,
}捕获(不支持的编码异常e){
e、 printStackTrace();
}
}否则{
//缓存的响应不存在。请在此处进行网络调用
}
返回视图;
}
}
convertView
如果列表视图
没有行可供回收,则该视图将为null
。当convertView
为null
时,您需要通过各种方式创建一个列表行。通常,您使用LayoutInflater
,最好是在活动中调用getLayoutInflater()
得到的