80,351
社区成员
发帖
与我相关
我的任务
分享
/**
* 商品详情sku适配器
* Created by kxx on 2016/12/10.
*/
public class GoodsDetailSkuAdapter extends BaseAdapter{
private final Activity context;
List<GoodsBean.SkuArray> skuArray;
private GoodsDetailSkuGridAdapter adapter;
private int size = 0;
private int color = 0;
private int style = 0;
//接口回调
SkuInterface skuListener;
public GoodsDetailSkuAdapter(Activity context, List<GoodsBean.SkuArray> skuArray,SkuInterface skuListener) {
this.skuArray = skuArray;
this.context = context;
this.skuListener = skuListener;
}
@Override
public int getCount() {
return skuArray.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView == null){
holder = new ViewHolder();
convertView = UiUtils.inflate(R.layout.item_goods_detail_sku);
holder.tv_dialog_sku_title = (TextView) convertView.findViewById(R.id.tv_dialog_sku_title);
holder.gv_dialog_properties = (MyGridView) convertView.findViewById(R.id.gv_dialog_properties);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
holder.tv_dialog_sku_title.setText(skuArray.get(position).name);
adapter = new GoodsDetailSkuGridAdapter(skuArray.get(position).val);
holder.gv_dialog_properties.setAdapter(adapter);
holder.gv_dialog_properties.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int sposition, long id) {
if(skuArray.get(position).title.equals("chima")){
adapter.setClickPosition(sposition);
size = Integer.parseInt(skuArray.get(position).val.get(sposition).id);
int sizeId = skuArray.get(position).id;
skuListener.setSkuSize(sizeId+":"+size);
adapter.notifyDataSetChanged();
}else if(skuArray.get(position).title.equals("yanse")){
adapter.setClickPosition(sposition);
color = Integer.parseInt(skuArray.get(position).val.get(sposition).id);
int colorId = skuArray.get(position).id;
skuListener.setSkuColor(colorId+":"+color);
adapter.notifyDataSetChanged();
}else if(skuArray.get(position).title.equals("kuanshi")){
adapter.setClickPosition(sposition);
style = Integer.parseInt(skuArray.get(position).val.get(sposition).id);
int styleId = skuArray.get(position).id;
skuListener.setSkuStyle(styleId+":"+style);
adapter.notifyDataSetChanged();
}
}
});
return convertView;
}
private class ViewHolder{
TextView tv_dialog_sku_title;
MyGridView gv_dialog_properties;
}
}
/**
* sku条目适配器
* Created by kxx on 2016/12/10.
*/
public class GoodsDetailSkuGridAdapter extends BaseAdapter {
private List<GoodsBean.SkuArray.Val> val = new ArrayList<>();
private int clickPosition = -1;
public GoodsDetailSkuGridAdapter(List<GoodsBean.SkuArray.Val> val) {
this.val = val;
}
@Override
public int getCount() {
return val.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
public void setClickPosition(int position){
this.clickPosition = position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if(convertView == null){
holder = new ViewHolder();
convertView = UiUtils.inflate(R.layout.item_sku_text_normal);
holder.tv_name = (TextView) convertView.findViewById(R.id.tv_name);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
holder.tv_name.setText(val.get(position).rename);
if(position == clickPosition){
//Toast.makeText(UiUtils.getContext(), "执行刷新", Toast.LENGTH_SHORT).show();
holder.tv_name.setBackgroundResource(R.drawable.shape_sku_text_pressed_bg);
holder.tv_name.setTextColor(Color.WHITE);
}else {
holder.tv_name.setBackgroundResource(R.drawable.shape_sku_text_normal_bg);
holder.tv_name.setTextColor(Color.rgb(109,109,109));
}
return convertView;
}
private class ViewHolder{
public TextView tv_name;
}
}
// private GoodsDetailSkuGridAdapter adapter; // 这一行代码注释了。
...
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView == null){
holder = new ViewHolder();
convertView = UiUtils.inflate(R.layout.item_goods_detail_sku);
holder.tv_dialog_sku_title = (TextView) convertView.findViewById(R.id.tv_dialog_sku_title);
holder.gv_dialog_properties = (MyGridView) convertView.findViewById(R.id.gv_dialog_properties);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
holder.tv_dialog_sku_title.setText(skuArray.get(position).name);
final GoodsDetailSkuGridAdapter adapter = new GoodsDetailSkuGridAdapter(skuArray.get(position).val);
holder.gv_dialog_properties.setAdapter(adapter);
holder.gv_dialog_properties.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int sposition, long id) {
if(skuArray.get(position).title.equals("chima")){
adapter.setClickPosition(sposition);
size = Integer.parseInt(skuArray.get(position).val.get(sposition).id);
int sizeId = skuArray.get(position).id;
skuListener.setSkuSize(sizeId+":"+size);
adapter.notifyDataSetChanged();
}else if(skuArray.get(position).title.equals("yanse")){
adapter.setClickPosition(sposition);
color = Integer.parseInt(skuArray.get(position).val.get(sposition).id);
int colorId = skuArray.get(position).id;
skuListener.setSkuColor(colorId+":"+color);
adapter.notifyDataSetChanged();
}else if(skuArray.get(position).title.equals("kuanshi")){
adapter.setClickPosition(sposition);
style = Integer.parseInt(skuArray.get(position).val.get(sposition).id);
int styleId = skuArray.get(position).id;
skuListener.setSkuStyle(styleId+":"+style);
adapter.notifyDataSetChanged();
}
}
});
return convertView;
}