麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Android > 正文

Android仿美團外賣菜單界面

2019-10-21 21:26:28
字體:
來源:轉載
供稿:網友

美團外賣菜單界面的Android實現代碼,供大家參考,具體內容如下

布局文件

總布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:orientation="horizontal"tools:context="com.example.a1_.activity.MainActivity"><ListView  android:id="@+id/lv_left"  android:layout_width="100dp"  android:layout_height="match_parent"></ListView><se.emilsjolander.stickylistheaders.StickyListHeadersListView  android:id="@+id/lv_right"  android:layout_width="match_parent"  android:layout_height="match_parent"></se.emilsjolander.stickylistheaders.StickyListHeadersListView></LinearLayout>

左側布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"><TextView  android:layout_margin="10dp"  android:id="@+id/tv_title"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_centerInParent="true"  android:text="菜單類別"  android:textSize="18sp" /></RelativeLayout>

右側布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="65dp"android:orientation="vertical"><ImageView  android:src="@mipmap/ic_launcher"  android:layout_margin="4dp"  android:id="@+id/iv"  android:layout_width="50dp"  android:layout_height="50dp" /><LinearLayout  android:layout_toRightOf="@id/iv"  android:orientation="vertical"  android:layout_margin="4dp"  android:layout_width="match_parent"  android:layout_height="match_parent">  <TextView    android:text="洋芋粉炒臘肉"    android:textSize="20sp"    android:id="@+id/tv_right_title1"    android:layout_width="wrap_content"    android:layout_height="wrap_content" />  <TextView    android:id="@+id/tv_right_title2"    android:text="洋芋粉炒臘肉"    android:textSize="16sp"    android:layout_width="wrap_content"    android:layout_height="wrap_content" />  <TextView    android:id="@+id/tv_right_count"    android:text="月銷售54份"    android:textSize="18sp"    android:layout_width="wrap_content"    android:layout_height="wrap_content" /></LinearLayout></RelativeLayout>

適配器

左側適配器

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<LeftBean> mList;private int currentLeftItem = 0;//創建一個構造方法public LeftAdapter(List<LeftBean> mList) {  this.mList = mList;}@Overridepublic int getCount() {  return mList.size();}@Overridepublic LeftBean getItem(int position) {  return mList.get(position);}@Overridepublic long getItemId(int position) {  return position;}@Overridepublic 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<LeftBean> mLeft;private List<RightBean> mRight;private Context context;public RightAdapter(List<LeftBean> mLeft, List<RightBean> mRight, Context context) {  this.mLeft = mLeft;  this.mRight = mRight;  this.context = context;}@Overridepublic 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;}@Overridepublic long getHeaderId(int position) {  return mRight.get(position).typeId;}@Overridepublic int getCount() {  return mRight.size();}@Overridepublic RightBean getItem(int position) {  return mRight.get(position);}@Overridepublic long getItemId(int position) {  return position;}@Overridepublic 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<LeftBean> getLeftData(){  List<LeftBean> list = new ArrayList<LeftBean>();  for (int i = 0; i < leftData.length; i++) {    LeftBean bean = new LeftBean();    bean.title = leftData[i];    bean.type = i;    list.add(bean);  }  return list;}public static List<RightBean> getRightData(List<LeftBean> list){  List<RightBean> rightList = new ArrayList<RightBean>();  for (int i = 0; i < list.size(); i++) {    LeftBean leftBean = list.get(i);    int mType = leftBean.type;    switch (mType) {      case 0:        rightList = getRightList(rightData0, leftBean, mType, rightList);        break;      case 1:        rightList = getRightList(rightData1, leftBean, mType, rightList);        break;      case 2:        rightList = getRightList(rightData2, leftBean, mType, rightList);        break;      case 3:        rightList = getRightList(rightData3, leftBean, mType, rightList);        break;      case 4:        rightList = getRightList(rightData4, leftBean, mType, rightList);        break;      case 5:        rightList = getRightList(rightData5, leftBean, mType, rightList);        break;      case 6:        rightList = getRightList(rightData6, leftBean, mType, rightList);        break;    }  }  return rightList;}private static List<RightBean> getRightList(String[] arr, LeftBean leftBean, int mType, List<RightBean> rightList){  for (int j = 0; j < arr.length; j++) {    RightBean bean = new RightBean();    bean.type = leftBean.title;    bean.biaoti = arr[j];    bean.typeId = mType;    rightList.add(bean);  }  return rightList;}}

核心代碼

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;@Overrideprotected 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<LeftBean> leftData = Data.getLeftData();  //獲取右側數據  final List<RightBean> 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 < leftData.size(); i++) {        //獲取左側條目的type,與右側條目的typeId對比是否一致        if (typeId == leftData.get(i).type) {          //說明找到了對應條目,跳出循環,設置當前被選中的條目          currentLeftItem = i;          //設置當前被選中的左側條目          leftAdapter.setCurrentSelect(currentLeftItem);          //刷新數據適配器          leftAdapter.notifyDataSetChanged();          break;        }      }    }  });}}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天天色宗合 | 爱性久久久久久久 | 午夜在线观看视频网站 | 日日狠狠久久偷偷四色综合免费 | 制服丝袜日日夜夜 | 视频一区二区不卡 | 4480午夜| 在线观看免费毛片视频 | 久久精品一区二区三区不卡牛牛 | 国产真实孩交 | 国产在线久 | 免费视频aaa| 中文字幕精品在线视频 | 女人叉开腿让男人桶 | 全免费午夜一级毛片真人 | 中午字幕无线码一区2020 | 久久免费观看一级毛片 | 9999在线视频 | 羞羞网站在线观看入口免费 | 精品视频在线免费看 | 欧美亚洲综合在线 | 国产在线精品一区二区夜色 | 中文字幕 亚洲一区 | 久草在线综合 | 国产99视频在线观看 | 在线视频观看一区二区 | 国产精品av久久久久久久久久 | 成人在线视频播放 | 精品久久久久久 | 国产精品视频中文字幕 | 久久综合九色综合久久久精品综合 | 欧美黄色一级片视频 | 色综合精品 | 免费网址黄| www.7777在线 | 91精品国产91久久久 | 久久综合综合久久 | 欧美日韩一 | 黄色特级 | 92自拍视频 | 成人做爽爽爽爽免费国产软件 |