ListView实现的点餐页面(含热门推荐、购物车)
这是我的第一篇博文,主要是用来记录自己的学习过程,同时方便和大家互相学习。第一次写,写的不好,大家还请多包涵。首先来看看这个页面的效果图:![]()
该页面主体部分是两个listView,分别对应商品的分类列表和商品的详情列表。下面我们看看商品分类对应的适配器GoodsClassifyAdapter 和 GoodsDetailsAdapter的具体代码。
GoodsClassifyAdapter :
package com.example.henry.test.adapter; import android.content.Context; import android.graphics.Color; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import com.example.henry.test.R; import com.example.henry.test.entity.GoodsClassify; import java.util.ArrayList; import java.util.List; /** * Description:商品分类的适配器 * author: henry * Date: 16-4-20 下午1:47. */ public class GoodsClassifyAdapter extends BaseAdapter { private Context context; private List<GoodsClassify> classifies = new ArrayList<>(); private int selectedPostion = 0; //选择的位置 public GoodsClassifyAdapter(Context context,List<GoodsClassify> classifies){ this.context = context; this.classifies = classifies; } @Override public int getCount() { return classifies.size(); } @Override public Object getItem(int position) { return classifies.get(position); } @Override public long getItemId(int position) { return position; } /** * 自定义方法,改变position * @param position */ public void clearSelection(int position) { selectedPostion = position; this.notifyDataSetChanged(); } @Override public View getView(int position, View convertView, ViewGroup parent) { final ViewHolder holder ; if (convertView == null){ convertView = View.inflate(context, R.layout.listitem_parentgoods,null); holder = new ViewHolder(); holder.mName = (TextView) convertView.findViewById(R.id.tv_name); holder.mNum = (TextView) convertView.findViewById(R.id.tv_count); convertView.setTag(holder); }else { holder = (ViewHolder) convertView.getTag(); } holder.mName.setText(classifies.get(position).getTypeName()); setNum(position,holder.mNum); //设置选中位置的字体和背景颜色 if (selectedPostion == position){ convertView.setBackgroundColor(Color.WHITE); holder.mName.setTextColor(Color.GREEN); }else{ convertView.setBackgroundColor(Color.LTGRAY); holder.mName.setTextColor(Color.GRAY); } return convertView; } /** * 设置商品数量的显示或隐藏 * @param position * @param textView */ public void setNum(int position,TextView textView){ int num = 0; for (int i = 0;i < classifies.get(position).getProdList().size();i++){ num += classifies.get(position).getProdList().get(i).getProdCount(); } classifies.get(position).setCount(num); if (num == 0){ textView.setVisibility(View.GONE); }else{ textView.setVisibility(View.VISIBLE); textView.getPaint().setAntiAlias(true); textView.setText(num + ""); } //设置商品第一列,即热门推荐数量隐藏 if (position == 0){ textView.setVisibility(View.GONE); } } class ViewHolder{ private TextView mName; private TextView mNum; } }
GoodsDetailsAdapter:
</pre><pre name="code" class="java">package com.example.henry.test.adapter; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.example.henry.test.entity.GoodsDetails; import com.example.henry.test.MainActivity; import com.example.henry.test.app.MyApplication; import com.example.henry.tes

该博客详细介绍了如何使用ListView组件在Android平台上构建一个包含热门推荐和购物车功能的点餐页面。

3839

被折叠的 条评论
为什么被折叠?



