Listview的基础使用
来源:互联网 发布:大学生体育锻炼数据 编辑:程序博客网 时间:2024/06/05 13:33
参照《第一行代码》上的教学案列,按照流程把代码写了一遍。
一:在布局中添加Listview
二:创建实体类Fruit,实例变量为String name;int imageId;
三:创建item布局,包含一个ImageView,一个TextView
四:创建自己的Adapter继承自ArrayAdapter,泛型为Fruit
代码:
public class FruitAdapter extends ArrayAdapter<Fruit> { private int resouceId; private List<Fruit> data; public FruitAdapter(Context context, int resource, List<Fruit> data) { super(context, resource, data); resouceId = resource; this.data = data; } public void add(Fruit fruit) { if (data != null) { data.add(fruit); notifyDataSetChanged(); } } @NonNull @Override public View getView(int position, View convertView, ViewGroup parent) { Fruit fruit = getItem(position); View view; ViewHolder holder; if (convertView != null) { view = convertView; holder = (ViewHolder) convertView.getTag(); } else { view = LayoutInflater.from(getContext()).inflate(resouceId, null); holder = new ViewHolder(); holder.ima = (ImageView) view.findViewById(R.id.img); holder.name = (TextView) view.findViewById(R.id.title); view.setTag(holder); } holder.ima.setImageResource(fruit.getImageId()); holder.name.setText(fruit.getName()); return view; } class ViewHolder { ImageView ima; TextView name; }
在Listview绑定Adapter是getview()方法会多次调用,其中的getitem()获得实体类的方法内部实现
private List<T> mObjects;... ... @Override public @Nullable T getItem(int position) { return mObjects.get(position); }
其实只是传入的list.get(position);
五:在Activity中使用Adapter,主要代码
FruitAdapter adapter = new FruitAdapter(this, R.layout.item_my, fruitList); listView.setAdapter(adapter);
点击事件
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Fruit fruit = fruitList.get(position); Toast.makeText(ListviewActivity.this, fruit.getName(), Toast.LENGTH_SHORT).show(); } });
动态的添加listview展示数据的条数,通过FruitAdapter中的add()方法
public void add(Fruit fruit) { if (data != null) { data.add(fruit); notifyDataSetChanged(); } }
在需要的地方调用
Fruit fruit = new Fruit("1111", R.mipmap.ic_launcher); adapter.add(fruit);
0 0
- Listview的基础使用
- 基础之ListView的使用
- Android基础之ListView的使用详解
- Android基础之ListView的使用详解
- 【Android基础】listview控件的使用(1)------最简单的listview的使用
- 【Android基础】listview控件的使用(4)-----自定义布局的listview的使用
- Android的基础学习:ListView的使用和Adapter
- ListView的基础应用
- ListView的基础学习
- Android基础之ListView(Item)的使用
- Android开发笔记—ListView的基础使用
- 安卓基础:ListView的简单使用和优化
- Android基础控件ListView的使用与焦点冲突解决
- 【Android基础】listview控件的使用(2)-------继承自ListActivity的普通listview
- ListView 和 Adapter 的基础
- ListView 和 Adapter 的基础
- ListView 和 Adapter 的基础
- ListView 和 Adapter 的基础
- linux下关于mysql安装的一些问题
- Android studio 2.2 logcat 不打印log的问题
- -----------------------python&Tensorflow分割线------------------
- qt 之绘制 圆弧(抽奖圆盘)
- 机器学习算法之SVM(1)结构风险最小化
- Listview的基础使用
- 在react-native的项目中跳转到原生iOS页面
- docker挂载
- Qt5.7+Opencv2.4.9人脸识别(四)模型训练
- XML解析
- bzoj 1996: [Hnoi2010]chorus 合唱队 dp
- cocos2d-x 3.x窗口大小
- 8 种 NoSQL 数据库系统对比
- Android动画学习笔记-Android Animation