@Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub ItemHolder holder = null; LocationBean location = mLocList.get(position); if (convertView == null) { holder = new ItemHolder(); convertView = (View) LayoutInflater.from(mContext).inflate(R.layout.item_address, null); holder.mAddressStr = (TextView) convertView.findViewById(R.id.address_text); holder.mTime = (TextView) convertView.findViewById(R.id.address_time); convertView.setTag(holder); } else { holder = (ItemHolder) convertView.getTag(); } holder.mAddressStr.setText(location.getAddressStr()); holder.mTime.setText(location.getTime()); return convertView; }
@Override public View getView(int position, View convertView, ViewGroup parent) { ItemHolder holder = null; if (convertView == null) { convertView = mInflater.inflate(R.layout.item_2product, null); holder = new ItemHolder(); holder.oneLayout = convertView.findViewById(R.id.product_one); holder.twoLayout = convertView.findViewById(R.id.product_two); holder.aimgV1 = (AutoHeightImageView) holder.oneLayout.findViewById(R.id.pro_img); holder.name1 = (TextView) holder.oneLayout.findViewById(R.id.pro_name); holder.price1 = (TextView) holder.oneLayout.findViewById(R.id.pro_price); holder.aimgV2 = (AutoHeightImageView) holder.twoLayout.findViewById(R.id.pro_img); holder.name2 = (TextView) holder.twoLayout.findViewById(R.id.pro_name); holder.price2 = (TextView) holder.twoLayout.findViewById(R.id.pro_price); holder.oneLayout.setOnClickListener(this.itemListener); holder.twoLayout.setOnClickListener(this.itemListener); convertView.setTag(holder); } else { holder = (ItemHolder) convertView.getTag(); } ProductModel pro = mProArray.get(position * 2); holder.oneLayout.setTag(position * 2); holder.aimgV1.setImageUrl(HomeFloorModel.formBraUrl(pro.front), mImgLoader); holder.name1.setText(pro.title); holder.price1.setText(pro.sale_price); if (mProArray.size() <= position * 2 + 1) holder.twoLayout.setVisibility(View.INVISIBLE); else { holder.twoLayout.setVisibility(View.VISIBLE); ProductModel pro2 = mProArray.get(position * 2 + 1); holder.twoLayout.setTag(position * 2 + 1); holder.aimgV2.setImageUrl(HomeFloorModel.formBraUrl(pro2.front), mImgLoader); holder.name2.setText(pro2.title); holder.price2.setText(pro2.sale_price); } return convertView; }
/** * 通过添加item到底部bar来创建一系列的选项 * * @param groupId 该item的组id,不同的组id在不同的区域内,请使用大于0的数字来表示 * @param itemId 该item的item id,用来标示该item,组内的两个item不能有相同的item id,要不然回调无法识别 * @param name 用来显示该item的名字 */ protected void addItemToBottomPopWindow(int groupId, int itemId, String name) { ArrayList<ItemHolder> temp; if (bottomItems.containsKey(groupId)) { if (itemId < 0) { throw new IllegalArgumentException( "groupId can be found,so itemId must bigger than 0 or equal 0"); } temp = bottomItems.get(groupId); ItemHolder holder = new ItemHolder(); holder.itemId = itemId; holder.name = name; temp.add(holder); } else { temp = new ArrayList<>(); if (itemId >= 0) { ItemHolder holder = new ItemHolder(); holder.itemId = itemId; holder.name = name; temp.add(holder); } bottomItems.put(groupId, temp); } buildBottomPopWindow(); }
@Override public void bindView(View view, Context context, final Cursor cursor) { final Alarm alarm = new Alarm(cursor); final ItemHolder itemHolder = (ItemHolder) view.getTag(); itemHolder.alarm = alarm; // We must unset the listener first because this maybe a recycled view so changing the // state would affect the wrong alarm. itemHolder.onoff.setOnCheckedChangeListener(null); itemHolder.onoff.setChecked(alarm.enabled); if (mSelectedAlarms.contains(itemHolder.alarm.id)) { itemHolder.alarmItem.setBackgroundColor(mBackgroundColorSelected); setItemAlpha(itemHolder, true); itemHolder.onoff.setEnabled(false); } else { itemHolder.onoff.setEnabled(true); itemHolder.alarmItem.setBackgroundColor(mBackgroundColor); setItemAlpha(itemHolder, itemHolder.onoff.isChecked()); } final CompoundButton.OnCheckedChangeListener onOffListener = new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { // When action mode is on - simulate long click if (doLongClick(compoundButton)) { return; } if (checked != alarm.enabled) { setItemAlpha(itemHolder, checked); alarm.enabled = checked; asyncUpdateAlarm(alarm, alarm.enabled); } } }; itemHolder.onoff.setOnCheckedChangeListener(onOffListener); itemHolder.onoff.setOnLongClickListener(mLongClickListener); itemHolder.clock.updateTime(alarm.hour, alarm.minutes); itemHolder.clock.setClickable(true); itemHolder.clock.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // When action mode is on - simulate long click if (doLongClick(view)) { return; } AlarmUtils.showTimeEditDialog(AlarmClock.this.getFragmentManager(), alarm); expandAlarm(itemHolder); itemHolder.alarmItem.post(mScrollRunnable); } }); itemHolder.clock.setOnLongClickListener(mLongClickListener); itemHolder.expandArea.setVisibility(isAlarmExpanded(alarm) ? View.VISIBLE : View.GONE); itemHolder.expandArea.setOnLongClickListener(mLongClickListener); itemHolder.infoArea.setVisibility(!isAlarmExpanded(alarm) ? View.VISIBLE : View.GONE); itemHolder.infoArea.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // When action mode is on - simulate long click if (doLongClick(view)) { return; } expandAlarm(itemHolder); itemHolder.alarmItem.post(mScrollRunnable); } }); itemHolder.infoArea.setOnLongClickListener(mLongClickListener); String colons = ""; // Set the repeat text or leave it blank if it does not repeat. final String daysOfWeekStr = alarm.daysOfWeek.toString(AlarmClock.this, false); if (daysOfWeekStr != null && daysOfWeekStr.length() != 0) { itemHolder.daysOfWeek.setText(daysOfWeekStr); itemHolder.daysOfWeek.setContentDescription( alarm.daysOfWeek.toAccessibilityString(AlarmClock.this)); itemHolder.daysOfWeek.setVisibility(View.VISIBLE); colons = ": "; itemHolder.daysOfWeek.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // When action mode is on - simulate long click if (doLongClick(view)) { return; } expandAlarm(itemHolder); itemHolder.alarmItem.post(mScrollRunnable); } }); itemHolder.daysOfWeek.setOnLongClickListener(mLongClickListener); } else { itemHolder.daysOfWeek.setVisibility(View.GONE); } if (alarm.label != null && alarm.label.length() != 0) { itemHolder.label.setText(alarm.label + colons); itemHolder.label.setVisibility(View.VISIBLE); itemHolder.label.setContentDescription( mContext.getResources().getString(R.string.label_description) + " " + alarm.label); itemHolder.label.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // When action mode is on - simulate long click if (doLongClick(view)) { return; } expandAlarm(itemHolder); itemHolder.alarmItem.post(mScrollRunnable); } }); itemHolder.label.setOnLongClickListener(mLongClickListener); } else { itemHolder.label.setVisibility(View.GONE); } if (isAlarmExpanded(alarm)) { expandAlarm(itemHolder); } view.setOnLongClickListener(mLongClickListener); view.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { // When action mode is on - simulate long click doLongClick(view); } }); }
@Override public View newView(Context context, Cursor cursor, ViewGroup parent) { final View view = mFactory.inflate(R.layout.alarm_time, parent, false); // standard view holder optimization final ItemHolder holder = new ItemHolder(); holder.alarmItem = (LinearLayout) view.findViewById(R.id.alarm_item); holder.clock = (DigitalClock) view.findViewById(R.id.digital_clock); holder.clock.setLive(false); holder.onoff = (Switch) view.findViewById(R.id.onoff); holder.onoff.setTypeface(mRobotoNormal); holder.daysOfWeek = (TextView) view.findViewById(R.id.daysOfWeek); holder.label = (TextView) view.findViewById(R.id.label); holder.expandArea = view.findViewById(R.id.expand_area); holder.infoArea = view.findViewById(R.id.info_area); holder.repeat = (CheckBox) view.findViewById(R.id.repeat_onoff); holder.clickableLabel = (TextView) view.findViewById(R.id.edit_label); holder.hairLine = view.findViewById(R.id.hairline); holder.repeatDays = (LinearLayout) view.findViewById(R.id.repeat_days); // Build button for each day. for (int i = 0; i < 7; i++) { final ViewGroup viewgroup = (ViewGroup) mFactory.inflate(R.layout.day_button, holder.repeatDays, false); final ToggleButton button = (ToggleButton) viewgroup.getChildAt(0); final int dayToShowIndex = DAY_ORDER[i]; button.setText(mShortWeekDayStrings[dayToShowIndex]); button.setTextOn(mShortWeekDayStrings[dayToShowIndex]); button.setTextOff(mShortWeekDayStrings[dayToShowIndex]); button.setContentDescription(mLongWeekDayStrings[dayToShowIndex]); holder.repeatDays.addView(viewgroup); holder.dayButtons[i] = button; holder.dayButtonParents[i] = viewgroup; } holder.vibrate = (CheckBox) view.findViewById(R.id.vibrate_onoff); holder.collapse = (ViewGroup) view.findViewById(R.id.collapse); holder.ringtone = (TextView) view.findViewById(R.id.choose_ringtone); view.setTag(holder); return view; }