亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > 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開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人黄色在线观看| 亚洲一区二区三区成人在线视频精品| 国产性色av一区二区| 亚洲欧美国产高清va在线播| 亚洲欧美一区二区三区情侣bbw| 久久久久久免费精品| 国产精品入口夜色视频大尺度| 亚洲成人教育av| 国产精品午夜视频| 久久久久久久久爱| 精品亚洲一区二区三区| 国产在线不卡精品| 欧美成人一区在线| 国产精品网站视频| 九色精品美女在线| 国产视频久久久久久久| 久久久久国产精品免费网站| 精品日本高清在线播放| 中文字幕亚洲综合久久筱田步美| 国语自产偷拍精品视频偷| 日韩精品日韩在线观看| 国产精品视频自拍| 亚洲国产精品成人va在线观看| 91网站免费观看| 97免费视频在线| 欧美性xxxx极品hd欧美风情| 国产精品www色诱视频| 欧美一区深夜视频| 亚洲第一级黄色片| 亚洲自拍另类欧美丝袜| 美女性感视频久久久| 久久九九亚洲综合| 国产va免费精品高清在线| 北条麻妃99精品青青久久| 欧美裸体视频网站| 亚洲国产精品久久| 国产一区二区三区在线播放免费观看| 亚洲国产中文字幕久久网| 欧美一级电影在线| 午夜精品免费视频| 77777亚洲午夜久久多人| 国产美女主播一区| 欧美电影免费在线观看| 91干在线观看| 国产综合在线视频| 亚洲欧美制服另类日韩| 在线亚洲国产精品网| 色噜噜久久综合伊人一本| 精品国产一区二区三区久久狼5月| 国产97在线播放| 欧美激情视频在线免费观看 欧美视频免费一| 日韩经典中文字幕| 国外色69视频在线观看| 亚洲综合日韩中文字幕v在线| 91免费的视频在线播放| 日韩欧美在线视频日韩欧美在线视频| 国产91在线视频| 日本精品性网站在线观看| 啊v视频在线一区二区三区| 日韩电影大片中文字幕| 国产网站欧美日韩免费精品在线观看| 久久久久久国产精品| 高清日韩电视剧大全免费播放在线观看| 55夜色66夜色国产精品视频| 国产视频一区在线| 欧美极品欧美精品欧美视频| 精品久久久国产精品999| 欧美日韩电影在线观看| 久久精品亚洲94久久精品| 91av视频导航| 国产精品视频区| 欧美成年人视频网站欧美| 亚洲国产精品女人久久久| 欧美成人午夜激情视频| 欧美专区第一页| 日韩精品免费一线在线观看| 欧美第一页在线| 国产z一区二区三区| 精品国产一区av| 久久国产视频网站| 国产欧美日韩精品丝袜高跟鞋| 成人黄色av网| 亚洲精品国产精品久久清纯直播| 日韩美女视频在线观看| 国产精品福利网| 色噜噜狠狠狠综合曰曰曰| 国产精品成人品| 欧美午夜精品伦理| 成人写真视频福利网| 精品中文字幕在线观看| 国产精品国产亚洲伊人久久| 久久国产一区二区三区| 日韩av中文在线| 2024亚洲男人天堂| 亚洲综合日韩在线| 欧美肥老太性生活视频| 日本一区二区不卡| 91久久中文字幕| 国产精品三级美女白浆呻吟| 欧美成aaa人片免费看| 日本韩国欧美精品大片卡二| 国产精品海角社区在线观看| 欧美韩国理论所午夜片917电影| 亚洲在线视频福利| 亚洲黄色av女优在线观看| 在线观看精品自拍私拍| 亚洲色图偷窥自拍| 日韩免费高清在线观看| 国产亚洲欧洲高清一区| 91高潮在线观看| 91牛牛免费视频| 2019中文字幕全在线观看| 欧美多人爱爱视频网站| 亚洲电影在线看| 色久欧美在线视频观看| 久久99国产综合精品女同| 国产精品久久久久久久av电影| 国产精品一区二区女厕厕| 中文字幕日韩欧美在线视频| 一区二区三区无码高清视频| 成人网欧美在线视频| 亚洲欧美在线免费观看| 美女性感视频久久久| 国产精品久久久久久久久久| 精品福利视频导航| 懂色aⅴ精品一区二区三区蜜月| 国产精品福利网| 亚洲成人动漫在线播放| 中国日韩欧美久久久久久久久| 尤物九九久久国产精品的特点| 亚洲精品99久久久久中文字幕| 久久福利视频导航| 日韩视频在线一区| 亚洲91精品在线观看| 欧美精品手机在线| 欧美成人国产va精品日本一级| 国产丝袜一区视频在线观看| 亚洲国产成人在线视频| 久久影视电视剧免费网站| 久久99视频精品| 91精品国产高清久久久久久| 最近2019年中文视频免费在线观看| 成人激情电影一区二区| 国产乱肥老妇国产一区二| 成人网在线观看| 中文字幕亚洲色图| 亚洲综合日韩中文字幕v在线| 懂色av中文一区二区三区天美| 国产精品69久久久久| 国产三级精品网站| 久久成年人免费电影| 欧美精品电影免费在线观看| 欧美性猛交xxxx久久久| 亚洲三级 欧美三级| 欧美国产精品va在线观看| 欧美成人精品xxx| 91精品国产乱码久久久久久蜜臀| 亚洲国产一区二区三区四区| 亚洲a级在线观看| 一区二区av在线| 91在线无精精品一区二区| 日韩在线播放一区| 欧美日韩国产精品专区| 91精品久久久久久久久久|