博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android学习笔记-listview实现方式之BaseAdapter
阅读量:4686 次
发布时间:2019-06-09

本文共 2531 字,大约阅读时间需要 8 分钟。

listview是Android开发中最为常用的组件,这里我们就学习一下用BaseAdapter的方式实现listview,

主布局activity_main.xml是这样的:

定义一个listitem.xml,这用于在listview组件中进行显示。

 那么activiy中的实现逻辑是这样的,由于我是在数据库中进行的取值,所以,定义的有dao类,而读者,完全可以自己定义一个arraylist进行数据的展示,

我们实现的是BaseDdapter,这里呢,这要实现类里面的两个方法,getCount():获取要展示的数据的个数,getView():对数据的展示,这里面有一个重要的方法:inflate(Context context, int resource, ViewGroup root)

  context:是上下文,

  resource:resource The resource ID to inflate,即要展示在listview中的资源文件的id,

  root:root A view group that will be the parent.  Used to properly inflate the * layout_* parameters,这个可以设置位空。

  

 

public class MainActivity extends Activity {	private LinearLayout ll;	private ListView lv;	private  List
persons; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ll = (LinearLayout) findViewById(R.id.ll_root); lv = (ListView) findViewById(R.id.lv); //获取数据 PersonDao dao = new PersonDao(this); //persons的类型是List
persons = dao.findAll(); lv.setAdapter(new MyAdapter()); } //默认实现类simplexxx,defaultxxx,basexxx. //当集成借口比较多的时候,可以继承base,simple,defaule,这些开头 private class MyAdapter extends BaseAdapter{ private static final String TAG = "MyAdapter"; //控制listview里总共有多少条目 @Override public int getCount() { // TODO Auto-generated method stub return persons.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { //得到某个位置的person对象。 Person person = persons.get(position); //把xml加载进来 View view = View.inflate(MainActivity.this, R.layout.listitem, null); //一定要在view对象中寻找孩子的id TextView tv_id = (TextView) view.findViewById(R.id.tv_id); TextView tv_name = (TextView) view.findViewById(R.id.tv_name); TextView tv_number = (TextView) view.findViewById(R.id.tv_number); //person.getId(),是int的,+"" ,int一定要转化成String类型的。 //tv_id.setText(person.getId());会出错。 tv_id.setText("ID: "+person.getId()); tv_name.setText("姓名: "+person.getName()); tv_number.setText("电话: "+person.getNumber()); return view; } }}

 

转载于:https://www.cnblogs.com/fengtengfei/p/3963102.html

你可能感兴趣的文章
ZOJ 1008 Gnome Tetravex
查看>>
Jenkin远程部署Tomcat8.5总结
查看>>
编写Linux中sh文件执行时出现莫名字符的问题
查看>>
简单数论(一)
查看>>
CXF和Axis的比较【转】
查看>>
设计一个函数,它接受不定数量的参数,这是参数都是函数。这些函数都接受一个回调函数作为参数,按照回调函数被调用的顺序返回函数名...
查看>>
MyBatis学习总结_06_调用存储过程
查看>>
SEO知识图一
查看>>
[开源JVM] yvm - 自制Java虚拟机
查看>>
Open vSwitch安装
查看>>
【Android】 No Activity found to handle Intent.
查看>>
Mysql 模糊匹配(字符串str中是否包含子字符串substr)
查看>>
C++ sort简单用法
查看>>
IIS的ISAPI接口简介
查看>>
python:open/文件操作
查看>>
16 乘法口诀输出
查看>>
mac 常用地址
查看>>
鼠标经过切换图片
查看>>
流程控制 Day06
查看>>
Linux下安装Tomcat
查看>>