Android仿美团外卖菜单界面

这篇文章主要为大家详细介绍了Android仿美团外卖菜单界面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

美团外卖菜单界面的Android实现代码,供大家参考,具体内容如下

布局文件

总布局

    

左侧布局

   

右侧布局

    

适配器

左侧适配器

 package com.example.a1_.adapter; import android.graphics.Color; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView; import com.example.a1_.Bean.LeftBean; import com.example.a1_.R; import java.util.List; /** * Created by Administrator on 2017.05.27.0027. */ public class LeftAdapter extends BaseAdapter { private List mList; private int currentLeftItem = 0; //创建一个构造方法 public LeftAdapter(List mList) { this.mList = mList; } @Override public int getCount() { return mList.size(); } @Override public LeftBean getItem(int position) { return mList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; if (convertView==null){ convertView = View.inflate(parent.getContext(), R.layout.left_item,null); //创建viewHolder对象 viewHolder = new ViewHolder(); viewHolder.tv_title = (TextView) convertView.findViewById(R.id.tv_title); //让viewholder挂在convertview上面一起复用 convertView.setTag(viewHolder); }else { //当convertView不为空时,吧viewholder取出来 viewHolder = (ViewHolder) convertView.getTag(); } //获取对应条目的内容 LeftBean leftBean = getItem(position); //把对应条目的内容设置在控件上 viewHolder.tv_title.setText(leftBean.title); //给左侧条目设置颜色 if (currentLeftItem ==position){ viewHolder.tv_title.setTextColor(Color.RED); } return convertView; } public void setCurrentSelect(int currentLeftItem){ this.currentLeftItem = currentLeftItem; } //创建一个viewholder,用来复用对象 class ViewHolder{ TextView tv_title; } }

右侧适配器

 package com.example.a1_.adapter; import android.content.Context; import android.graphics.Color; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import com.example.a1_.Bean.LeftBean; import com.example.a1_.Bean.RightBean; import com.example.a1_.R; import java.util.List; import java.util.Random; import se.emilsjolander.stickylistheaders.StickyListHeadersAdapter; /** * Created by Administrator on 2017.05.27.0027. */ public class RightAdapter extends BaseAdapter implements StickyListHeadersAdapter { private List mLeft; private List mRight; private Context context; public RightAdapter(List mLeft, List mRight, Context context) { this.mLeft = mLeft; this.mRight = mRight; this.context = context; } @Override public View getHeaderView(int position, View convertView, ViewGroup parent) { TextView tv = new TextView(context); tv.setTextColor(Color.RED); tv.setTextSize(18); tv.setText(mRight.get(position).type); return tv; } @Override public long getHeaderId(int position) { return mRight.get(position).typeId; } @Override public int getCount() { return mRight.size(); } @Override public RightBean getItem(int position) { return mRight.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; if (convertView==null){ convertView = View.inflate(context, R.layout.right_item,null); viewHolder = new ViewHolder(); viewHolder.title1 = (TextView) convertView.findViewById(R.id.tv_right_title1); viewHolder.title2 = (TextView) convertView.findViewById(R.id.tv_right_title2); viewHolder.count = (TextView) convertView.findViewById(R.id.tv_right_count); convertView.setTag(viewHolder); }else { viewHolder = (ViewHolder) convertView.getTag(); } RightBean rightBean = mRight.get(position); viewHolder.title1.setText(rightBean.biaoti); viewHolder.title2.setText(rightBean.biaoti); //使用Random获取随机数 Random random = new Random(); int i = random.nextInt(100); viewHolder.count.setText("月销量"+i+"份"); return convertView; } static class ViewHolder{ TextView title1; TextView title2; TextView count; } }

javabean文件

左侧

 package com.example.a1_.Bean; public class LeftBean { public String title; public int type; }

右侧

 package com.example.a1_.Bean; import android.R.string; public class RightBean { public String biaoti; public String type; public int typeId; }

数据源

 package com.example.a1_.data; import com.example.a1_.Bean.LeftBean; import com.example.a1_.Bean.RightBean; import java.util.ArrayList; import java.util.List; /** * Created by wangcaisheng on 2017/5/27. */ public class Data { private static String[] leftData = new String[]{"13.9特价套餐","粗粮主食","佐餐小吃","用心营养套餐(不含主食)","三杯鸡双拼尊享套餐","带鱼双拼尊享套餐","红烧肉双拼尊享套餐"}; private static String[] rightData0 = new String[]{"洋芋粉炒腊肉","土鸡炖香菇","新疆大盘辣子土鸡","清炖土鸡块","农家蒸碗 ","香辣野猪肉","香辣薯条大虾","麻辣猪血"}; private static String[] rightData1 = new String[]{"商芝扣肉","羊肉萝卜","干烧鱼 ","干煸野猪肉 ","排骨火锅","土鸡火锅","牛肉火锅","狗肉火锅 "}; private static String[] rightData2 = new String[]{"虎皮辣子炒咸肉","重庆飘香水煮鱼","红烧土鸡块","干煸辣子土鸡","清炖全鸡 "}; private static String[] rightData3 = new String[]{"洋芋粉炒腊肉","土鸡炖香菇","新疆大盘辣子土鸡","清炖土鸡块","农家蒸碗 ","香辣野猪肉","香辣薯条大虾","麻辣猪血"}; private static String[] rightData4 = new String[]{"洋芋粉炒腊肉","土鸡炖香菇","新疆大盘辣子土鸡","清炖土鸡块","农家蒸碗 ","香辣野猪肉","香辣薯条大虾","麻辣猪血"}; private static String[] rightData5 = new String[]{"洋芋粉炒腊肉","土鸡炖香菇","新疆大盘辣子土鸡","清炖土鸡块","农家蒸碗 ","香辣野猪肉","香辣薯条大虾","麻辣猪血"}; private static String[] rightData6 = new String[]{"洋芋粉炒腊肉","土鸡炖香菇","新疆大盘辣子土鸡","清炖土鸡块","农家蒸碗 ","香辣野猪肉","香辣薯条大虾","麻辣猪血"}; public static List getLeftData(){ List list = new ArrayList(); for (int i = 0; i  getRightData(List list){ List rightList = new ArrayList(); for (int i = 0; i  getRightList(String[] arr, LeftBean leftBean, int mType, List rightList){ for (int j = 0; j 

核心代码

 package com.example.a1_.activity; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import com.example.a1_.Bean.LeftBean; import com.example.a1_.Bean.RightBean; import com.example.a1_.R; import com.example.a1_.adapter.LeftAdapter; import com.example.a1_.adapter.RightAdapter; import com.example.a1_.data.Data; import java.util.List; import se.emilsjolander.stickylistheaders.StickyListHeadersListView; public class MainActivity extends AppCompatActivity { private ListView lv_left; private StickyListHeadersListView lv_right; private int currentLeftItem; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); } //初始化控件 private void initView() { //初始化控件 lv_left = (ListView) findViewById(R.id.lv_left); lv_right = (StickyListHeadersListView) findViewById(R.id.lv_right); } //设置适配器 private void initData() { //创建适配器 final LeftAdapter leftAdapter = new LeftAdapter(Data.getLeftData()); //获取左侧数据 final List leftData = Data.getLeftData(); //获取右侧数据 final List rightData = Data.getRightData(leftData); RightAdapter rightAdapter = new RightAdapter(leftData, rightData, this); //为左侧布局设置适配器 lv_left.setAdapter(leftAdapter); lv_right.setAdapter(rightAdapter); //为左侧条目设置点击事件 lv_left.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { //当左侧条目被点击时,记录下被点击条目的type int type = leftData.get(position).type; //遍历右侧条目,并获取右侧条目的typeId,与刚刚获取的type对比,是否一致 for (int i = 0; i < rightData.size(); i++) { if (type == rightData.get(i).typeId) { //如果找到对应的条目,那就将右侧条目滚动至对应条目,并跳出循环 lv_right.smoothScrollToPosition(i); currentLeftItem = i; //设置当前被选中的左侧条目 leftAdapter.setCurrentSelect(currentLeftItem); //刷新数据适配器 leftAdapter.notifyDataSetChanged(); break; } } //        Toast.makeText(MainActivity.this, "您选中了"+leftData.get(position).title, Toast.LENGTH_SHORT).show(); } }); //为右侧条目设置点击事件 lv_right.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { //        Toast.makeText(MainActivity.this, "右侧条目被点击了"+position, Toast.LENGTH_SHORT).show(); //当右侧条目被点击时,获取被点击条目的typeId int typeId = rightData.get(position).typeId; //遍历左侧条目 for (int i = 0; i 

以上就是Android仿美团外卖菜单界面的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » 移动