if (position >= 0 && position < routeSortList.size()) { RouteSortModel model = routeSortList.get(position); holder.mItemName.setText(model.mItemName); Drawable topDrawable; if ((model.mPreferValue & mCurrentPreferValue) != 0) { // 当前选中偏好 holder.mItemName.setTextColor(getColor(R.color.nsdk_route_sort_setting_default)); int drawableId = model.getPreferIconId(true); topDrawable = getDrawable(drawableId); holder.mItemName.setCompoundDrawablesWithIntrinsicBounds(null, topDrawable, null, null); } else { holder.mItemName.setTextColor(getColor(R.color.nsdk_route_sort_item_text)); int drawableId = model.getPreferIconId(false); topDrawable = getDrawable(drawableId); holder.mItemName.setCompoundDrawablesWithIntrinsicBounds(null, topDrawable, null, null); } } }
时间: 2024-02-14 09:30:37 浏览: 64
android-support-v7-recyclerview.jar
这段代码是`onBindViewHolder`方法的部分,用于设置ViewHolder中的视图显示。
以下是代码的解释:
- 首先,通过判断`position`是否在有效范围内(大于等于0且小于`routeSortList`的大小),以确保获取到正确的数据。
- 然后,从`routeSortList`中获取对应位置的`RouteSortModel`对象,并将其偏好项的名称设置为`holder.mItemName`的文本。
- 接下来,根据当前偏好值和该偏好项的值进行判断。如果当前偏好值与该偏好项的值按位与的结果不为0,说明该偏好项被选中。在这种情况下,将`holder.mItemName`的文本颜色设置为指定颜色资源(R.color.nsdk_route_sort_setting_default),并根据偏好项获取对应的图标资源,并将其设置为`holder.mItemName`的左侧图标。
- 如果当前偏好值与该偏好项的值按位与的结果为0,说明该偏好项未被选中。在这种情况下,将`holder.mItemName`的文本颜色设置为指定颜色资源(R.color.nsdk_route_sort_item_text),并根据偏好项获取对应的图标资源,并将其设置为`holder.mItemName`的左侧图标。
以上是代码段的解释,如果还有其他部分需要解释,请继续发送给我。
阅读全文