qq_30562993 2016-04-01 03:28 采纳率: 53.8%
浏览 2760
已采纳

listview 只显示最后一条数据,帮忙看看吧

图片说明

  • 写回答

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;
      }

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!