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

来源:互联网 发布:暗黑3传奇数据库 编辑:程序博客网 时间:2024/05/01 01:53

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

没级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 0
原创粉丝点击