9条回答 默认 最新
- cyxevil 2016-04-01 06:15关注
package com.bypro.adapter.visit;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;import android.content.Context;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.TextView;import com.bypro.R;
import com.bypro.activity.MainActivity;
import com.bypro.activity.visit.RecentVisitActivity;
import com.bypro.entity.ReMenEntityBrowse;
import com.bypro.entity.ReMenEntityBrowse.Type;/**
-
*/
public class RoomListVisitAdapter extends BaseAdapter {private List arrayList;// 房源
private Context context;
private LayoutInflater inflater;
private boolean flag;
private List checkBoxs = new ArrayList();
public SparseArray checkMap;
public ArrayList positions;
private List views = new ArrayList();
private List datas = new ArrayList();
private EditType mType = EditType.NO_EDIT;public enum EditType {
EDIT, NO_EDIT
}public EditType getmType() {
return mType;
}public void setmType(EditType mType) {
this.mType = mType;
}public RoomListVisitAdapter(Context context,
List arrayList2) {
this.arrayList = arrayList2;
this.context = context;
this.inflater = LayoutInflater.from(context);
checkMap = new SparseArray();
positions = new ArrayList();
}@Override
public int getCount() {
return arrayList.size();
}@Override
public ReMenEntityBrowse getItem(int position) {
return arrayList.get(position);
}@Override
public long getItemId(int position) {
return position;
}ViewHolder vh = null;
ViewHolder2 vh2 = null;
Data data = new Data();class ClickListener implements OnClickListener {
private int position; public ClickListener(int pos) { position = pos; } @Override public void onClick(View v) { CheckBox cb = (CheckBox) v.findViewById(R.id.room_img_check); if (cb.isChecked()) { cb.setChecked(false); } else { cb.setChecked(true); } notifyActivity(position, cb); }
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ReMenEntityBrowse entity = arrayList.get(position);if (convertView == null) { if (getItemViewType(position) == 0) { convertView = inflater.inflate( R.layout.browse_item_room_new_view, null); vh = new ViewHolder(); vh.building_edit_flag = (CheckBox) convertView .findViewById(R.id.room_img_check); vh.building_image = (ImageView) convertView .findViewById(R.id.item_room_new_building_image); vh.building_name = (TextView) convertView .findViewById(R.id.item_room_new_building_name); vh.building_address = (TextView) convertView .findViewById(R.id.item_room_new_building_address); vh.building_first_price = (TextView) convertView .findViewById(R.id.item_room_new_building_first_price); vh.building_unit_price = (TextView) convertView .findViewById(R.id.item_room_new_building_unit_price); vh.building_DISTANCE = (TextView) convertView .findViewById(R.id.textView1); vh.title = (ImageView) convertView .findViewById(R.id.room_img_title); vh.building_label_1 = (ImageView) convertView .findViewById(R.id.item_room_new_building_label_1); vh.building_label_2 = (ImageView) convertView .findViewById(R.id.item_room_new_building_label_2); vh.building_label_3 = (ImageView) convertView .findViewById(R.id.item_room_new_building_label_3); checkBoxs.add(vh.building_edit_flag); convertView.setTag(vh); } else { convertView = inflater.inflate( R.layout.browse_item_room_zufang_view, null); vh2 = new ViewHolder2(); vh2.building_edit_flag = (CheckBox) convertView .findViewById(R.id.room_img_check); checkBoxs.add(vh2.building_edit_flag); vh2.building_image = (ImageView) convertView .findViewById(R.id.item_room_new_building_image); vh2.building_title = (TextView) convertView .findViewById(R.id.item_room_zufang_title); vh2.building_address = (TextView) convertView .findViewById(R.id.item_room_zufang_address); vh2.building_price = (TextView) convertView .findViewById(R.id.item_room_zufang_junjia); vh2.building_zhengzu = (TextView) convertView .findViewById(R.id.item_room_zhengzu); vh2.building_countf = (TextView) convertView .findViewById(R.id.item_room_zufang_shi_ting); vh2.building_label_1 = (ImageView) convertView .findViewById(R.id.item_room_new_building_label_1); vh2.building_label_2 = (ImageView) convertView .findViewById(R.id.item_room_new_building_label_2); vh2.building_label_3 = (ImageView) convertView .findViewById(R.id.item_room_new_building_label_3); convertView.setTag(vh2); } } else { if (getItemViewType(position) == 0) { vh = (ViewHolder) convertView.getTag(); String flg1 = entity.getFLG1(); String flg2 = entity.getFLG2(); String flg3 = entity.getFLG3(); if (!"".equals(flg1)) { vh.building_label_1.setVisibility(View.VISIBLE); setImg(vh.building_label_1, flg1); } else { vh.building_label_1.setVisibility(View.GONE); } if (!"".equals(flg2)) { vh.building_label_2.setVisibility(View.VISIBLE); setImg(vh.building_label_2, flg2); } else { vh.building_label_2.setVisibility(View.GONE); } if (!"".equals(flg3)) { vh.building_label_3.setVisibility(View.VISIBLE); setImg(vh.building_label_3, flg3); } else { vh.building_label_3.setVisibility(View.GONE); } if ("1".equals(entity.getHotMarks())) { vh.title.setVisibility(View.VISIBLE); vh.title.setImageResource(R.drawable.hot); } else { if ("1".equals(entity.getNewMarks())) { vh.title.setVisibility(View.VISIBLE); vh.title.setImageResource(R.drawable.latest); } else { vh.title.setVisibility(View.GONE); } } } else { vh2 = (ViewHolder2) convertView.getTag(); String flg1 = entity.getFLG1(); String flg2 = entity.getFLG2(); String flg3 = entity.getFLG3(); if (!"".equals(flg1)) { vh2.building_label_1.setVisibility(View.VISIBLE); setImg(vh2.building_label_1, flg1); } else { vh2.building_label_1.setVisibility(View.GONE); } if (!"".equals(flg2)) { vh2.building_label_2.setVisibility(View.VISIBLE); setImg(vh2.building_label_2, flg2); } else { vh2.building_label_2.setVisibility(View.GONE); } if (!"".equals(flg3)) { vh2.building_label_3.setVisibility(View.VISIBLE); setImg(vh2.building_label_3, flg3); } else { vh2.building_label_3.setVisibility(View.GONE); } } } if (getItemViewType(position) == 0) { final String ImgUrl = entity.getImgUrl(); if ("null".equals(ImgUrl) || ImgUrl == null || "".equals(ImgUrl)) { vh.building_image .setBackgroundResource(R.drawable.list_home_image); } else { MainActivity.imageLoader_mid.DisplayImage(ImgUrl, vh.building_image); } String EstateName = entity.getEstateName(); String CountF = entity.getCountF(); String Square = entity.getSquare(); String PropertyDirection = entity.getPropertyDirection(); String PropertyDecoration = entity.getPropertyDecoration(); String PropertyType = entity.getPropertyType(); final String ProAvgPrice = entity.getProAvgPrice(); String Price = entity.getPrice(); String CountH = entity.getCountH(); final String DISTANCE = entity.getDISTANCE(); double d = 0; DecimalFormat df = null; String a = ""; if (DISTANCE != null) { if (!"0".equals(DISTANCE)) { d = Double.parseDouble(DISTANCE); df = new DecimalFormat(".00"); a = df.format(d) + "km"; } else { a = "--km"; } } if (mType == EditType.NO_EDIT) { vh.building_edit_flag.setVisibility(View.GONE); } else { vh.building_edit_flag.setVisibility(View.VISIBLE); convertView.setOnClickListener(new ClickListener(position)); // TODO caoyx3 vh.building_edit_flag .setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged( CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub if (isChecked) { arrayList.get(position).setFlag(true); } else { arrayList.get(position).setFlag(false); } } }); vh.building_edit_flag.setChecked(arrayList.get(position) .isFlag()); // if (mType == EditType.EDIT) { // } } vh.building_name.setText(EstateName + ", " + CountF + "室, " + Square + "平"); vh.building_address.setText(PropertyDirection + " " + PropertyDecoration + " " + PropertyType + "/共" + CountH + "层"); vh.building_first_price.setText(ProAvgPrice + "元/㎡"); vh.building_unit_price.setText(Price + "万"); vh.building_DISTANCE.setText(a); } else { final String ImgUrl = entity.getImgUrl(); if ("null".equals(ImgUrl) || ImgUrl == null || "".equals(ImgUrl)) { vh2.building_image .setBackgroundResource(R.drawable.list_home_image); } else { MainActivity.imageLoader_mid.DisplayImage(ImgUrl, vh2.building_image); } final String PropertyId = entity.getPropertyId(); final String EstateName = entity.getEstateName(); String CountF = entity.getCountF(); String CountT_Property = entity.getCountT_Property(); String Square = entity.getSquare(); String RentType = entity.getRentType(); final String RentPrice = entity.getRentPrice(); if (mType == EditType.NO_EDIT) { vh2.building_edit_flag.setVisibility(View.GONE); } else { vh2.building_edit_flag.setVisibility(View.VISIBLE); convertView.setOnClickListener(new ClickListener(position)); // TODO caoyx3 vh2.building_edit_flag .setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged( CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub if (isChecked) { arrayList.get(position).setFlag(true); } else { arrayList.get(position).setFlag(false); } } }); vh2.building_edit_flag.setChecked(arrayList.get(position) .isFlag()); // if (mType == EditType.EDIT) { // } } vh2.building_title.setText(EstateName + ", " + Square + "平"); vh2.building_address.setText(EstateName); vh2.building_price.setText(RentPrice + "元/月"); vh2.building_zhengzu.setText(RentType); vh2.building_countf.setText(CountF + "室" + CountT_Property + "厅"); } return convertView;
}
// class MyAdapterListener implements OnCheckedChangeListener {
//
// private int position;
// private String name;
// private String pid;
// private CheckBox box;
//
// public MyAdapterListener(int pos, String name, String pid, CheckBox box)
// {
// position = pos;
// this.name = name;
// this.pid = pid;
// this.box = box;
// }
//
// @Override
// public void onCheckedChanged(CompoundButton buttonView,
// boolean isChecked) {
//
// CheckBox box = (CheckBox) buttonView;
// data.position = position;
// data.name = name;
// data.pid = pid;
//
// if (isChecked) {
// checkBoxs.add(box);
// datas.add(data);
// box.setBackgroundResource(R.drawable.icon_duigougraygdd);
// } else {
// box.setBackgroundResource(R.drawable.icon_duigouredgdd);
// }
// }
//
// }
//
// class MyOnClickListener implements View.OnClickListener {
//
// private int position;
// private String name;
// private String pid;
// private CheckBox box;
//
// public MyOnClickListener(int pos, String name, String pid, CheckBox box)
// {
// position = pos;
// this.name = name;
// this.pid = pid;
// this.box = box;
// }
//
// @Override
// public void onClick(View v) {
//
// data.position = position;
// data.name = name;
// data.pid = pid;
//
// if (box.isChecked()) {
// checkBoxs.add(box);
// datas.add(data);
// box.setBackgroundResource(R.drawable.icon_duigougraygdd);
// } else {
// box.setBackgroundResource(R.drawable.icon_duigouredgdd);
// }
// }
//
// }public void notifyAllChecked() {
for (int i = 0; i < checkBoxs.size(); i++) {
checkBoxs.get(i).setChecked(true);
}
notifyDataSetChanged();
}public void notifyAllNotCheck() {
for (int i = 0; i < checkBoxs.size(); i++) {
checkBoxs.get(i).setChecked(false);
}
notifyDataSetChanged();
}private void setImg(ImageView img, String flg1) {
if ("地铁房".equals(flg1)) {
img.setImageResource(R.drawable.room_ditiefang);
}
if ("学区房".equals(flg1)) {
img.setImageResource(R.drawable.room_xuequfang);
}
if ("钥匙房".equals(flg1)) {
img.setImageResource(R.drawable.room_yaochifang);
}
if ("满二唯一".equals(flg1)) {
img.setImageResource(R.drawable.room_manerweiyi);
}
if ("急售房".equals(flg1)) {
img.setImageResource(R.drawable.room_jishoufang);
}
if ("经理推荐".equals(flg1)) {
img.setImageResource(R.drawable.room_jinglituijian);
}
}@Override
public int getViewTypeCount() {
return 2;
}@Override
public int getItemViewType(int position) {
if (getItem(position).getType() == Type.HANDE_HOUSE) {
return 0;
} else {
return 1;
}
}@Override
public void notifyDataSetChanged() {
super.notifyDataSetChanged();
}// public void notifyShowCheckBox() {
// if (flag == true) {
// notifyDataSetChanged();
// count = 1;
// flag = false;
// } else if (flag == false) {
// views.clear();
// initDatas();
// notifyDataSetChanged();
// count = 0;
// flag = true;
// }
// }
//
// public void notifyInitCheckBox() {
// for (int i = 0; i < checkBoxs.size(); i++) {
// checkBoxs.get(i).setChecked(false);
// }
// }
//
// private void initDatas() {
// if (datas.size() != 0) {
// datas.clear();
// }
// }public class Data {
int position;
String pid;
String name;public int getPosition() { return position; } public String getPid() { return pid; } public String getName() { return name; } public void setName(String name) { this.name = name; }
}
public List getViews() {
return views;
}public List getDatas() {
return datas;
}private void notifyActivity(int position, CheckBox cb) {
ReMenEntityBrowse reMenEntity = RecentVisitActivity.arrayList
.get(position);
if (cb.isChecked()) {
reMenEntity.setFlag(true);
} else {
reMenEntity.setFlag(false);
}
}class ViewHolder {
ImageView building_image;
TextView building_name;
TextView building_address;
TextView building_unit_price;
TextView building_first_price;
TextView building_DISTANCE;
ImageView building_label_1;
ImageView building_label_2;
ImageView building_label_3;
ImageView title;
CheckBox cb;
CheckBox building_edit_flag;
}class ViewHolder2 {
ImageView building_image;
TextView building_title;
TextView building_zhengzu;
TextView building_countf;
TextView building_price;
TextView building_address;
ImageView building_label_1;
ImageView building_label_2;
ImageView building_label_3;
ImageView title;
CheckBox cb;
CheckBox building_edit_flag;
}
}
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报