近期在做一个电商类app,listvise联动让我废了好多力。

好了直接上代码,不多说。但是第一次把自己动东西写在博客上,有什么问题豪情大家见谅。

没级adapater的建立

public class ProlistClassifyoneAdapter extends BaseAdapter {
    Activity mActivity;
    List<Productclassify> mProlistClassifyone;

    public ProlistClassifyoneAdapter(Activity mActivity, List<Productclassify> mProlistClassifyone) {
        this.mActivity = mActivity;
        this.mProlistClassifyone = mProlistClassifyone;
    }

    @Override
    public int getCount() {
        return mProlistClassifyone.size();
    }

    @Override
    public Object getItem(int position) {
        return getItem(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    static class ViewHolder {
        public TextView textView_cname;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            holder = new ViewHolder();
            convertView = mActivity.getLayoutInflater().inflate(R.layout.near_one_item, null);
            holder.textView_cname = (TextView) convertView.findViewById(R.id.tv_cname);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.textView_cname.setText(mProlistClassifyone.get(position).getCName());
        return convertView;
    }


}
public class ProlistClassifytwoAdapter extends BaseAdapter {
    AppCompatActivity Activity;
    List<Productclassify> mProlistClassifytwo;
    private Map<Integer,List<Productclassify>> mMap;

    public ProlistClassifytwoAdapter(AppCompatActivity activity, List<Productclassify> mProlistClassifytwo, Map<Integer, List<Productclassify>> mMap) {
        Activity = activity;
        this.mProlistClassifytwo = mProlistClassifytwo;
        this.mMap = mMap;
    }

    @Override
    public int getCount() {
        return mProlistClassifytwo.size();
    }

    @Override
    public Object getItem(int position) {
        return getItem(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }
    static class ViewHolder{

        public TextView textView_cname;

        public GridView gridView;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final ViewHolder holder;
        if (convertView==null){
            holder=new ViewHolder();
            convertView=Activity.getLayoutInflater().inflate(R.layout.near_two_item,null);
            holder.textView_cname= (TextView) convertView.findViewById(R.id.tv_cname);
            holder.gridView= (GridView)convertView.findViewById(R.id.gv_three);

            convertView.setTag(holder);
        }else {
            holder=(ViewHolder)convertView.getTag();
        }
        holder.textView_cname.setText(mProlistClassifytwo.get(position).getCName());
        holder.gridView.setAdapter(new ProlistClassifythreeAdapter(Activity, mMap.get(position)));
//        holder.gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
//            @Override
//            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//                NearFragment nearFragment = (NearFragment) mActivity.getSupportFragmentManager().findFragmentByTag("near");
//                if (nearFragment != null) {
//                 nearFragment.bannerItemClick(mMap.get(position).get);
//                }
//            }
//        });
        return convertView;
    }
}
public class ProlistClassifythreeAdapter extends BaseAdapter {
    AppCompatActivity Activity;
    List<Productclassify> mProlistClassifythree;

    public ProlistClassifythreeAdapter(AppCompatActivity activity, List<Productclassify> mProlistClassifythree) {
        Activity = activity;
        this.mProlistClassifythree = mProlistClassifythree;
    }

    @Override
    public int getCount() {
        return mProlistClassifythree.size();
    }

    @Override
    public Object getItem(int position) {
        return getItem(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        View view=View.inflate(Activity,R.layout.near_three_item,null);
        final TextView textView= (TextView) view.findViewById(R.id.tv_cname);
        textView.setText(mProlistClassifythree.get(position).getCName());
        textView.setTag(mProlistClassifythree.get(position).getID());
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.d("aa", "aa");
                if (Activity != null) {
                    Log.d("aa", "bb");
                    NearFragment nearFragment = (NearFragment) Activity.getSupportFragmentManager().findFragmentByTag("near");
                    Log.d("aa", "cc");
                    if (nearFragment != null) {
                        nearFragment.bannerItemClick(mProlistClassifythree.get(position).getID());
                    }
                }
            }

        });
        return view;
    }
}
因为adapter是在fragment中建立,所以它的上下文很重要。

nearfragmen中的代码片段  

//一级分类
mProlistClassifyone = new ArrayList<>();
//Log.e("ss", "mProlistClassify.size()" + mProlistClassify.size() + "");
for (int i = 0; i < mProlistClassify.size(); i++) {
    //Log.e("ss", mProlistClassify.get(i).getDepth() + "");
    if (mProlistClassify.get(i).getDepth() == 1) {
        mProlistClassifyone.add(mProlistClassify.get(i));
    }
}
mListview_productclassify.setAdapter(new ProlistClassifyoneAdapter(getActivity(), mProlistClassifyone));
Log.d("aa", "建立适配器成功");
mListview_productclassify.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        //二级分类
        int oneId = mProlistClassifyone.get(position).getID();
        mProlistClassifytwo = new ArrayList<>();
        for (int i = 0; i < mProlistClassify.size(); i++) {
            if (mProlistClassify.get(i).getParentID() == oneId) {
                mProlistClassifytwo.add(mProlistClassify.get(i));
            }
        }
        Log.d("aa", "条目点击事件成功");
        //三级分类
        // Map<Integer, List<Productclassify>> map = new HashMap<>();
        Log.d("aa", "创建表格布局成功");
        for (int j = 0; j < mProlistClassifytwo.size(); j++) {
            List<Productclassify> listTemp = new ArrayList<Productclassify>();
            for (int i = 0; i < mProlistClassify.size(); i++) {
                if (mProlistClassify.get(i).getParentID() == mProlistClassifytwo.get(j).getID()) {
                    listTemp.add(mProlistClassify.get(i));
                }
            }
            map.put(j, listTemp);
        }
        Log.d("aa", "三级分类获取成功");
        mListview_productclassify2.setAdapter(new ProlistClassifytwoAdapter(mActivity, mProlistClassifytwo, map));
        Log.d("aa", "建立三级分类适配器");
    }
});


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值