ListView自定义itemView
2015-08-23 17:06
134 查看
ListView显示数据的时候,应该是数据控制View的显示
每个item对应xml文件:
adapter定义每个itemView的布局和数据,数据控制View的显示,如要获得每个View的position,可以在adapter类中添加position变量,并用这个变量来控制显示。
adapter类:
LayoutInflater.from(context).inflate(R.layout.trade_list_item_info, null);
这个方法非常重要!
每个item对应xml文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tradeListViewInfo" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/TradeItemIcon" android:layout_width="25dp" android:layout_height="25dp" android:layout_marginLeft="60dp" android:layout_gravity="center_vertical" android:layout_marginRight="10dp" /> <TextView android:id="@+id/TradeItemTitle" android:layout_width="wrap_content" android:layout_height="65dp" android:textColor="@color/White" android:gravity="center_vertical" android:layout_gravity="center_vertical" android:textSize="16dp"></TextView> </LinearLayout>
adapter定义每个itemView的布局和数据,数据控制View的显示,如要获得每个View的position,可以在adapter类中添加position变量,并用这个变量来控制显示。
adapter类:
public class TitleListAdapter extends BaseAdapter{ ArrayList<TradeTitleAndIcon> tradeTitleAndIconList; private Context context; private TextView titleView; private TextView iconView; public TitleListAdapter(Context c, ArrayList<TradeTitleAndIcon> tradeTitleAndIconList) { this.tradeTitleAndIconList=tradeTitleAndIconList; this.context = c; } @Override public int getCount() { // TODO Auto-generated method stub return tradeTitleAndIconList.size(); } @Override public Object getItem(int i) { // TODO Auto-generated method stub return tradeTitleAndIconList.get(i); } @Override public long getItemId(int i) { // TODO Auto-generated method stub return i; } public void setItemSelected(int position) { for (TradeTitleAndIcon tradeTitleAndIcon:tradeTitleAndIconList) { tradeTitleAndIcon.selected=false; } tradeTitleAndIconList.get(position).selected=true; notifyDataSetChanged(); } @Override public View getView(int i, View view, ViewGroup viewgroup) { titleView = null; iconView=null; if(view == null){ view = LayoutInflater.from(context).inflate(R.layout.trade_list_item_info, null); } titleView=(TextView)view.findViewById(R.id.TradeItemTitle); titleView.setText(tradeTitleAndIconList.get(i).titleName); iconView=(TextView)view.findViewById(R.id.TradeItemIcon); if (tradeTitleAndIconList.get(i).selected) { titleView.setTextColor(Color.RED); iconView.setBackgroundResource(tradeTitleAndIconList.get(i).titleIconRed); } else { titleView.setTextColor(Color.WHITE); iconView.setBackgroundResource(tradeTitleAndIconList.get(i).titleIcon); } return view; } }
LayoutInflater.from(context).inflate(R.layout.trade_list_item_info, null);
这个方法非常重要!
相关文章推荐
- HawkEye鹰眼系统 高级渗透测试必备利器(SQL/XXE/SSRF神器)
- noip2006初赛-完善程序第二题
- Eclipse的maven插件最新地址
- 再述设计模式——基础知识
- hdu4671 思维构造
- DbUtils 笔记
- 例题 7-5 困难的串 UVa129
- mysql 触发器。
- 不显示控制台 静默运行
- Maven POM学习笔记之<Project>元素
- 在安装数据库中遇到的问题:
- Java 进程通信
- 数据库技术之死锁的实例和监测
- Android学习之解决ListView中item点击事件和item中Button点击事件冲突问题
- 确定两串乱序同构
- orcad统计管脚数
- 项目修改名字后web.xml 报错
- Android而一个超级漂亮的日历控件
- XML预览
- 黑马程序员--Java基础学习(网络编程)第二十四天