您的位置:首页 > 其它

ListView自定义itemView

2015-08-23 17:06 134 查看
ListView显示数据的时候,应该是数据控制View的显示

每个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);

这个方法非常重要!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: