用列表显示自定义布局的内容-BaseAdapter
来源:互联网 发布:手机短信推广软件下载 编辑:程序博客网 时间:2024/05/18 02:37
列表显示内容—BaseAdapter
1、定义一个ListView 和一个itew
listView只是一个大的框架,具体显示什么东西,是在item中的定义的,例如:
listView:
<ListView android:id="@+id/LView_position" android:textIsSelectable="true" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:background="@drawable/layout_border"></ListView>
Item:显示内容:用来显示职位名,公司名之类
<LinearLayout android:id="@+id/LLayout_intension_first" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/TView_position" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="25sp" android:gravity="left" android:text="职位名称"/> <TextView android:id="@+id/TView_salary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="right" android:textSize="15sp" android:text="2K-5K" android:textColor="#FF0000" /></LinearLayout><LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/LLayout_intension_first" android:layout_marginTop="20dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_vertical" android:text="公司:" android:drawableLeft="@drawable/position"/> <TextView android:id="@+id/TView_companyName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_vertical|left" android:text="333"/></LinearLayout>
2、准备数据
将要填充到item中的数据获取,具体的获取方法,自己根据数据库的不同,定义方法。
3、声明MyAdapter
构造方法,根据自己的实际情况而定,此处我传递的是一个上下文和一个数据的集合。此处写一个viewHolder方法,用于将组件显示(item中声明的组件),保存第一次查找的组件,防止反复的查找。其中convertView用于视图是否创建,如果创建就不用反复创建,优化内存。注意:如果想要给listView添加点击事件,需要用到setOnItemClick方法,根据具体的position来确定选中的是哪一个listview。
public class MyAdapter extends BaseAdapter { private Context context; private List<Company> list; public MyAdapter(Context context,List<Company> list) { this.list = list; this.context = context; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder vh; if (convertView==null){ LayoutInflater inflater = LayoutInflater.from(context); //实例化一个布局文件 convertView = inflater.inflate(R.layout.intension, null); vh = new ViewHolder(); vh.companyName = (TextView)convertView.findViewById(R.id.TView_companyName); vh.location = (TextView) convertView.findViewById(R.id.TView_location); vh.industry = (TextView) convertView.findViewById(R.id.TView_industry); convertView.setTag(vh); }else{ vh = (ViewHolder) convertView.getTag(); } vh.companyName.setText(list.get(position).getCompany_name()); vh.location.setText(list.get(position).getLocation()); vh.industry.setText(list.get(position).getCompany_industry()); System.out.println("sssssssssssssssssssssssss" + position); System.out.println("sssssssssssssssssssssssss"+convertView); //设置listView的点击事件 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { company = list.get(position).getCompany_name(); Intent intent = new Intent(SearchjobActivity.this, CompanyInfoActivity.class); intent.putExtra("companyName", company); startActivity(intent); } }); return convertView; } //用于保存第一次查找的组件,避免下次重复查找 public class ViewHolder{ TextView companyName; TextView location; TextView industry; }}
4、调用adapter
在Oncreate方法中给listview适配MyAdapter
listView.setAdapter(new MyAdapter(context,list));
0 0
- 用列表显示自定义布局的内容-BaseAdapter
- 自定义BaseAdapter,在主Activity页面调用显示歌曲列表
- android一个BaseAdapter的使用(LayoutInflater加载自定义布局)
- 在DEDECMS后台管理文档列表中,需要在列表中显示自定义的字段内容
- Android给dialog使用自定义布局时,布局内容无法完全显示的问题
- 实现自定义的BaseAdapter
- 可复用的自定义BaseAdapter
- struts2循环标签(将一个列表的内容在界面显示出来,自定义日期格式)
- ComboBox绑定枚举和自定义类时指定列表中显示的类属性内容
- Android学习ListView自定义布局,适配器BaseAdapter
- BaseAdapter 自定义适配器设置网格布局
- BaseAdapter-ListView中的item显示多种布局
- 自定义List列表显示短信内容,仿iphone短信气泡
- 使用自定义的RelateLayout实现列表布局
- Android的ListView使用BaseAdapter时不显示List的内容的解决办法
- android 自定义adapter extends BaseAdapter,做有自己布局的listView
- android 自定义adapter extends BaseAdapter,做有自己布局的listView
- 【iOS7的一些总结】9、用列表显示内容(上):列表视图UITableView
- docker报错
- window.open
- 使用Eclipse Mars新建maven项目
- android基础之SQLite:
- sqoops数据的导入导出
- 用列表显示自定义布局的内容-BaseAdapter
- git 查看远程分支、本地分支、删除本地分支
- 使用CAShapeLayer与UIBezierPath画出想要的图形
- 利用read/write系统调用复制文件
- 朴素贝叶斯简记
- 关于mysql安装的一些小问题
- Activity的状态
- Angularjs中scope的一些属性
- hadoop伪发布安装配置