首先寫個ListView 的資料配接器,抽離出來,寫一個對象,用來設定listView 每條Item 的 的對象,可以採用ConvertView 設定setTag 將View 房子tag中,可以通過ListvIEW .getChildAt().getTag. 取得你想要的對象,設定參數,還是鐵代碼吧!
getView:
ItemObj viewHolder = null;
if(convertView == null){
viewHolder = new ItemObj();
convertView = mLayoutInflate.inflate(R.layout.simple_item, null);
viewHolder.mSimpleCardName = (TextView) convertView.findViewById(R.id.simple_name);
viewHolder.mIsReTake = (TextView) convertView.findViewById(R.id.simple_num);
viewHolder.mContentNext = (TextView)convertView.findViewById(R.id.status);
viewHolder.mIsNext = (TextView) convertView.findViewById(R.id.icon_next);
convertView.setTag(viewHolder);
}else{
viewHolder = (ItemObj) convertView.getTag();
}
PhotoList aPotoLists = (PhotoList) getItem(position);
if(aPotoLists!= null){
viewHolder.mSimpleCardName.setText(aPotoLists.photoName);
if(KeyInMapITF.TAKESIMPLE_PIC_TEP!= null){
viewHolder.mIsReTake.setText("("+0+")");
if(KeyInMapITF.TAKESIMPLE_PIC_TEP.equals(aPotoLists.photoName)){
ArrayList<PhotoList> aLists= (ArrayList<PhotoList>) GlobalParameter.get(KeyInMapITF.TAKESIMPLE_PIC_TEP);
viewHolder.mIsReTake.setText("("+aLists.size()+")");
}
}
if(aPotoLists.status.equals("0")){
viewHolder.mContentNext.setText("未審核");
viewHolder.mIsNext.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.task_list_arrows));
}else{
viewHolder.mContentNext.setText("已審核");
viewHolder.mIsNext.setText("");
convertView.setOnClickListener(null);
}
}
obj 對象:
public class ItemObj extends Object{
public TextView mSimpleCardName;// 單證的名稱
public TextView mIsReTake;// 0 是 單證拍照 1是重拍照片
public TextView mContentNext;// 未提交 未審核等
public TextView mIsNext;// 箭頭
public TextView getmSimpleCardName() {
return mSimpleCardName;
}
public void setmSimpleCardName(TextView mSimpleCardName) {
this.mSimpleCardName = mSimpleCardName;
}
public TextView getmIsReTake() {
return mIsReTake;
}
public void setmIsReTake(TextView mIsReTake) {
this.mIsReTake = mIsReTake;
}
public TextView getmContentNext() {
return mContentNext;
}
public void setmContentNext(TextView mContentNext) {
this.mContentNext = mContentNext;
}
public TextView getmIsNext() {
return mIsNext;
}
public void setmIsNext(TextView mIsNext) {
this.mIsNext = mIsNext;
}