android编程练习中遇到的问题(三)-自定义适配器getView()不执行
2016-06-01 22:35
411 查看
今天在做自定义适配器练习的时,发现ListView无论如何都不加载项布局文件,只有一片白板儿。反复检查代码没有发现问题,就在getView()方法中调用了Log.v调试信息,查看是否执行了此方法
结果是运行时没有相关调试信息出现,也就代表没有执行此方法,于是我猜测是不是代码出了问题,便改为用系统的适配器ArrayAdap测试,
发现能加载项布局文件。
在这个时候发现AS提示"android 23 Platform" not found,我就想是不是这个问题,结果下载过后发现问题依然没有解决。最后通过搜索找到了问题所在。
如果自定义适配器中的getCount()返回值为0,是不会执行getView方法。
将getCount()返回值修改后
成功加载项布局文件.
public View getView(int i, View view, ViewGroup viewGroup) { Log.v("student", "succesful"); View v = layoutInflater.inflate(resChildLayout, null); Student student = (Student) arrayList.get(i); Log.v("student", student.getName()); ((ImageView) v.findViewById(R.id.item_img)).setImageResource(student.getPhoto()); ((TextView) v.findViewById(R.id.item_name_txt)).setText(student.getName()); ((TextView) v.findViewById(R.id.item_age_txt)).setText(student.getAge()); ((TextView) v.findViewById(R.id.item_sex_txt)).setText(student.isSex() ? "男" : "女"); return v; }
结果是运行时没有相关调试信息出现,也就代表没有执行此方法,于是我猜测是不是代码出了问题,便改为用系统的适配器ArrayAdap测试,
ArrayList<Student> students = new ArrayList<Student>(); String[] str = {"first", "second"}; // Student student = new Student(); // student.setPhoto(R.drawable.apple); // student.setName("张三"); // student.setAge(22); // student.setSex(true); // students.add(student); // // student = new Student(); // student.setPhoto(R.drawable.peach); // student.setName("李四"); // student.setAge(23); // student.setSex(true); // students.add(student); ArrayAdapter adapter = new ArrayAdapter(this, R.layout.activity_item_layout, str); // MyAdapter myAdapter = new MyAdapter(this, students, R.layout.main_activity_item_layout); mActivityListview.setAdapter(adapter);
发现能加载项布局文件。
在这个时候发现AS提示"android 23 Platform" not found,我就想是不是这个问题,结果下载过后发现问题依然没有解决。最后通过搜索找到了问题所在。
如果自定义适配器中的getCount()返回值为0,是不会执行getView方法。
@Override public int getCount() { return 0; }//getCount()方法返回值为0,自定义适配器类运行时不会执行
将getCount()返回值修改后
@Override public int getCount() { return arrayList.size(); }//getCount()方法返回值为0,自定义适配器类运行时不会执行
成功加载项布局文件.
相关文章推荐
- Android 在外部存储读写文件
- AndroidStudio主题设置
- Android6.0 运行时权限
- android AsyncTask介绍
- 有序广播
- android中listView监听中获取监听到的内容
- 安卓ProgressDialog实现自定义Diallog加载动画
- Android模拟ListView点击下载和局部刷新
- 【Android】传感器(线性加速度、陀螺仪、磁场)信号实时获取,实时监测指定wifi、蓝牙信号强度
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- 关于Android Studio第三方登录(使用QQ登录)代码
- Android 嵌套滚动条
- Android平台发展史
- Android基于事件监听器处理机制
- Android连续点击两次Back键退出程序
- Android 显示gif动画
- android隐藏信号栏
- Android Service实现闹钟
- Android MVP模式简介