近期在做一个电商类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
- 近期在做一个电商类app,listvise联动让我废了好多力。
- 我现在在做一个app,里面要有聊天的功能,但是我在网上找了好多例子,我都没有运行成功,希望路过的大神能给我点指导或者源码也行
- 【腾讯TMQ】老总让做后台接口监控,我却开发了一个App
- 一个OA 做了好多天好多天。。
- 我做了一个操作,让市面90%多的android app崩溃了(我是小米5手机)
- 假如让我重新做一个Android App
- 我近期在做的另一个项目
- 最近想在tableviewcontroller上加一个固定悬浮窗,自己问了好多人,做了好多试验,终于成功了!
- 世界杯----让我的好多事情按了暂停键
- 看了贝贝的《就在那一年我被大学给废了》后 《转载》
- C竞赛,我又废了、、、
- 每周收垃圾邮数增加30%,我又废了一个邮箱
- 在这个旁晚我做了一个决定
- 近期在做的
- 我做了一个计算器
- 比我老婆好多了
- 废了
- 废了。
- js中的面向对象程序设计(2)-创建对象
- zookeeper的安装与配置
- linux内核之块设备三---块设备排入bio请求
- Redis 事务
- Python 之 if __name__ == '__main__'
- 近期在做一个电商类app,listvise联动让我废了好多力。
- linux内核之块设备四---deadline调度算法
- Visual Studio 使用正则表达式检查代码规范
- LVS+keepalived+nginx+tomcat部署实现
- Android Gallery画廊 兼容4.0以上版本
- hibernate的一对一映射-主键映射-单向-mysql数据库
- 在Ubuntu上安装zsh
- <context:component-scan>使用说明
- HashCode和equal