国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Android】線上自助點餐系統(tǒng)

這篇具有很好參考價值的文章主要介紹了【Android】線上自助點餐系統(tǒng)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

效果視頻

【Android】線上自助點餐系統(tǒng)

商品選購界面

效果圖

【Android】線上自助點餐系統(tǒng)

商品數(shù)據(jù)

由于沒有服務(wù)器,無法網(wǎng)絡(luò)獲取商品信息,故化繁從簡,將需要的商品信息保存成xml文件,次項目將商品信息分為三個文件:標(biāo)題文件,商品詳細(xì)信息文件,商品圖片文件。

商品標(biāo)題文件
<resources>
    <string-array name="title">
        <item>把酒言歡</item>
        <item>爆炒干鍋</item>
        <item>海鮮派對</item>
        <item>辣度自選</item>
        <item>素菜最愛</item>
        <item>旺季龍蝦</item>
        <item>無肉不歡</item>
        <item>主食飽腹</item>
    </string-array>
</resources>
商品詳細(xì)文件信息

由于篇幅過長,就沒有顯示全部商品信息,每一個商品信息分為:商品名稱,商品規(guī)格,商品價格三個小類

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="content">
<!--        title:把酒言歡-->
        <item>可樂</item>
        <item>一瓶</item>
        <item>3.00</item>

        <item>雪花</item>
        <item>一瓶</item>
        <item>5.00</item>

        <item>怡寶</item>
        <item>一瓶</item>
        <item>2.00</item>
    </string-array>

</resources>
商品圖片

由于篇幅過長,例舉部分商品圖片信息

<resources>
    <integer-array name="icon">
        <item>@drawable/kele</item>
        <item>@drawable/xuehua</item>
        <item>@drawable/yibao</item>
            </integer-array>
</resources>

添加商品數(shù)據(jù)

解析左側(cè)標(biāo)題數(shù)據(jù)
    private void InitTitle(){
        String[] titleArray = getResources().getStringArray(R.array.title);
        for (int i = 0; i < titleArray.length; i++) {
            goodsTitle = new Goods.GoodsTitle(titleArray[i],i );
            titleList.add( goodsTitle );
        }
    }
解析右側(cè)商品數(shù)據(jù)
private void InitContent(){
        TypedArray iconArray = getResources().obtainTypedArray(R.array.icon);
        int index = 0;
        String[] content = getResources().getStringArray(R.array.content);
        for (int i = 0; i < content.length ; i+=3) {
            //if (index < iconArray.length())
            /*把酒言歡*/
            if ( i < 3){
                goodsContent = new Goods.GoodsContent(  iconArray.getResourceId(index++,0), content[i], content[i+1], Float.parseFloat(content[i+2]),R.drawable.icon_add,R.drawable.icon_sub,0,0 );
            }else if (i < 8){
                /*爆炒干鍋*/
                goodsContent = new Goods.GoodsContent( iconArray.getResourceId(index++,0), content[i], content[i+1], Float.parseFloat(content[i+2]),R.drawable.icon_add,R.drawable.icon_sub,0,1 );
            }else if ( i  < 12){
                /*海鮮派對*/
                goodsContent = new Goods.GoodsContent( iconArray.getResourceId(index++,0), content[i], content[i+1], Float.parseFloat(content[i+2]),R.drawable.icon_add,R.drawable.icon_sub,0,2 );
            }else if ( i < 16){
                /*辣度自選*/
                goodsContent = new Goods.GoodsContent( iconArray.getResourceId(index++,0), content[i], content[i+1], Float.parseFloat(content[i+2]),R.drawable.icon_add,R.drawable.icon_sub,0,3 );
            }else if ( i < 22){
                /*素菜最愛*/
                goodsContent = new Goods.GoodsContent( iconArray.getResourceId(index++,0), content[i], content[i+1], Float.parseFloat(content[i+2]),R.drawable.icon_add,R.drawable.icon_sub,0,4 );
            }else if ( i < 25){
                /*旺季龍蝦*/
                goodsContent = new Goods.GoodsContent( iconArray.getResourceId(index++,0), content[i], content[i+1], Float.parseFloat(content[i+2]),R.drawable.icon_add,R.drawable.icon_sub,0,5 );
            }else if ( i < 28){
                /*無肉不歡*/
                goodsContent = new Goods.GoodsContent( iconArray.getResourceId(index++,0), content[i], content[i+1], Float.parseFloat(content[i+2]),R.drawable.icon_add,R.drawable.icon_sub,0,6 );
            }else
                /*主食飽腹*/
                goodsContent = new Goods.GoodsContent( iconArray.getResourceId(index++,0), content[i], content[i+1], Float.parseFloat(content[i+2]),R.drawable.icon_add,R.drawable.icon_sub,0,7 );

            contentList.add( goodsContent );
        }
    }

左側(cè)標(biāo)題與右側(cè)商品雙向綁定

我們在添加左側(cè)標(biāo)題的時候有一個參數(shù),為每一個小類的標(biāo)識。同樣在添加商品數(shù)據(jù)的時候,根據(jù)商品所屬小類進(jìn)行了分類。

private void InitListener(){
        titleAdapter.setOnItemClickListener( new BaseQuickAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
                String[] titleArray = getResources().getStringArray(R.array.title);
                titleAdapter.setSelection( position );
                titleAdapter.notifyDataSetChanged();
                contentManager.scrollToPositionWithOffset( titleArray.length,0 );
            }
        } );
        mGoodsContent.addOnScrollListener( new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled( recyclerView, dx, dy );
                int firstPosition = contentManager.findFirstVisibleItemPosition();
                goodsContent = contentList.get(firstPosition);
                int subId = goodsContent.getSubId();
                int pos = 0;
                for (int i = 0; i < titleList.size(); i++) {
                    int id = titleList.get(i).getId();
                    if ((subId == id)) {
                        pos = i;
                    }
                }
                titleAdapter.setSelection(pos);
                //mGoodsTitle.scrollToPosition( pos );
                titleAdapter.notifyDataSetChanged();

            }
        } );

加減按鈕監(jiān)聽

對每一個商品的加減按鈕進(jìn)行點擊事件監(jiān)聽

 contentAdapter.setOnItemChildClickListener( new BaseQuickAdapter.OnItemChildClickListener() {
            @Override
            public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
                double  Price = contentList.get( position ).getPrice();
                switch (view.getId()){
                    case R.id.Add:
                        int numberAdd = contentList.get( position ).getNumber();
                        numberAdd++;
                        Monetary(Price);
                        contentList.get( position ).setNumber( numberAdd );
                        contentAdapter.notifyDataSetChanged();
                        //Toast.makeText( FunctionActivity.this,"Add"+Price,Toast.LENGTH_SHORT ).show();
                        break;
                    case R.id.Sub:
                        int numberSub = contentList.get( position ).getNumber();
                        if (numberSub > 0 ){
                            numberSub--;
                            contentList.get( position ).setNumber( numberSub );
                            LessMoney(Price);
                        }else if (numberSub < 0){
                            contentList.get( position ).setNumber( 0 );
                        }
                        contentAdapter.notifyDataSetChanged();
                        //Toast.makeText( FunctionActivity.this,"Sub"+Price,Toast.LENGTH_SHORT ).show();
                        break;
                }
            }
        } );

并且每次點擊事件更新所選商品總額,并且對所選商品下限設(shè)定為15元,方才能進(jìn)行支付。

 private void Monetary(double Money){
        TotalMoney+=Money;
        money.setText( doubleToString(TotalMoney) );
        if (TotalMoney > 15){
            MoreThanStyle();
        }else {
            LessStyle();
        }
    }
    private void LessMoney(double Money){
        TotalMoney-=Money;
        if (TotalMoney < 15){
            LessStyle();
            money.setText( 0+"" );
        }else {
            MoreThanStyle();
            money.setText( doubleToString(TotalMoney) );
        }
    }

所選商品存入數(shù)據(jù)庫

將所選的商品信息保存到數(shù)據(jù)庫,方便對其進(jìn)行存取

private void GotoSettlement(){
        String user = (String) sp.GetData(FunctionActivity.this,"UserName_login","");
        String pass = (String) sp.GetData(FunctionActivity.this,"PassWord_login","");
        for (int i = 0; i <contentList.size() ; i++) {
            int num = contentList.get( i ).getNumber();
            if (num > 0){
                /*插入數(shù)據(jù)為null*/
                //Toast.makeText( context,""+num,Toast.LENGTH_SHORT ).show();
                goodsList = new GoodsList(user,pass, contentList.get( i ).getGoodsIMG(),contentList.get( i ).getContent(),contentList.get( i ).getPrice(),contentList.get( i ).getNumber(),R.drawable.icon_sub,R.drawable.icon_add );
                dao.Insert( goodsList );
            }
        }
    }

商品復(fù)選

此界面可以對所選商品進(jìn)行復(fù)選,可以看見商品總額,并對其進(jìn)行最后確認(rèn)

效果圖

【Android】線上自助點餐系統(tǒng)

取出商品數(shù)據(jù)

從數(shù)據(jù)庫中將用戶所選商品進(jìn)行取出,并添加到此適配器中

 private void InitData(){
        goodsLists = dao.QueryAll();
        for (int i = 0; i <goodsLists.size() ; i++) {
            goodsList = new GoodsList(goodsLists.get(i).getUserName(),goodsLists.get(i).getPassWord(), goodsLists.get( i ).getImg(),goodsLists.get( i ).getName(),goodsLists.get( i ).getPrice(),goodsLists.get( i ).getNumber(),goodsLists.get( i ).getSub(),goodsLists.get( i ).getAdd() );
            dataList.add( goodsList );
        }
    }

商品清空

將適配器中所有子項刪除

goodsAllClear.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                goodsListAdapter.removeAllItem( dataList );
                goodsTotalNumber.setText( 0+"" );
                goodsTotalPrice.setText( 0+"" );
            }
        } );

商品增刪

private void Listener(){
        goodsListAdapter.setOnItemChildClickListener( new BaseQuickAdapter.OnItemChildClickListener() {
            @Override
            public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
                int num = dataList.get( position ).getNumber();
                double price = dataList.get( position ).getPrice();
                switch (view.getId()){
                    case R.id.goodsAdd:
                        goodsListAdapter.addPrice(dataList,price,position,num);
                        InitBarData();
                        //Toast.makeText( GoodsListActivity.this,"Add"+num,Toast.LENGTH_SHORT ).show();
                        break;
                    case R.id.goodsSub:
                        goodsListAdapter.subPrice(dataList,price,position,num);
                        InitBarData();
                        //Toast.makeText( GoodsListActivity.this,"Sub"+num,Toast.LENGTH_SHORT ).show();
                        break;
                }
            }
        } );
    }

支付界面

效果圖

【Android】線上自助點餐系統(tǒng)
密碼匹配

此控件為自定義view,具體代碼不展示,有興趣的可以觀看另外一篇文章,鏈接已掛
人臉支付與密碼支付

payPassWord.setOnTextFinishListener(new PayPwdEditText.OnTextFinishListener() {
            @Override
            public void onFinish(String str) {
                String Pay = "000000";
                if (str.equals( Pay ))
                {
                    toastFormat.setText("支付成功");
                    toastFormat.show();
                    startActivity(new Intent(PaymentActivity.this,PaySuccessActivity.class));
                }else {
                    toastFormat.setText("密碼錯誤");
                    toastFormat.show();
                    payPassWord.clearText();
                }
            }
        });

支付成功

效果圖

【Android】線上自助點餐系統(tǒng)

SharedPreferences

利用SharedPreferences完成數(shù)據(jù)傳遞,關(guān)于SharedPreferences封裝可以觀看另外一篇文章。

sp = SP.getInstance();
        money = (String) sp.GetData(PaySuccessActivity.this,"TotalPrice","");

歷史數(shù)據(jù)圖表化

此圖標(biāo)工具采用第三方APIhellocharts

效果圖

【Android】線上自助點餐系統(tǒng)

數(shù)據(jù)初始化

從數(shù)據(jù)庫取出購買商品數(shù)據(jù)

 dao = new Dao(context);
        goodsLists = dao.QueryAll();
        Totalnum = goodsLists.size();
X軸

從數(shù)據(jù)庫中取出商品名稱,并作為X軸數(shù)據(jù)

for (int i = 0; i <goodsLists.size() ; i++) {
            title.add(goodsLists.get(i).getName());
        }
Y軸

分為內(nèi)外兩層循環(huán),外循環(huán)覺得總的小類,內(nèi)循環(huán)決定一個小類有幾根柱子;例如:用戶購買了4個商品,分別顯示商品的價格以及數(shù)量,則外循環(huán)為4,內(nèi)循環(huán)為2;文章來源地址http://www.zghlxwxcb.cn/news/detail-478304.html

 for (int j = 0; j < Totalnum ; j++) {
            mPointValues = new ArrayList<>();
            for (int i = 0; i < single; i++) {
                mPointValues.add(new SubcolumnValue((goodsLists.get(j).getPrice()), color.get(j)));
                //值的大小、顏色
                //設(shè)置X軸的柱子所對應(yīng)的屬性名稱(底部文字)
                axisXValues.add(new AxisValue(j).setLabel(title.get(j)));
            }
            Column column = new Column(mPointValues);
            ColumnChartValueFormatter chartValueFormatter = new SimpleColumnChartValueFormatter(2);
            column.setFormatter(chartValueFormatter);
            column.setHasLabelsOnlyForSelected(false);
            column.setHasLabels(true);
            //column.setValues(mPointValues);
            //將每個屬性得列全部添加到List中
            //添加了7個大柱子Column,單個大柱子里面mPointValues大小為3(自行調(diào)整)
            columns.add(column);
        }

尾言

由于篇幅原因,并未將全部代碼貼出

到了這里,關(guān)于【Android】線上自助點餐系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 基于微信小程序的奶茶自助點餐單送餐系統(tǒng)的設(shè)計與實現(xiàn)(源碼+論文)_v_156

    基于微信小程序的奶茶自助點餐單送餐系統(tǒng)的設(shè)計與實現(xiàn)(源碼+論文)_v_156

    摘 ? 要 移動互聯(lián)網(wǎng)時代的到來,智能手機(jī)的普及,在眾多手機(jī)軟件中,微信被廣大用戶認(rèn)可并廣泛被使用。隨著微信的發(fā)展,微信的功能越來越齊全,越來越多的個人以及企業(yè)都看大了微信營銷的優(yōu)勢,都逐漸加入都了微信營銷中,即微商。其信息傳播速度快的特點,能都

    2024年02月03日
    瀏覽(29)
  • 微信小程序nodejs+vue+uniapp高校食堂線上預(yù)約點餐系統(tǒng)

    微信小程序nodejs+vue+uniapp高校食堂線上預(yù)約點餐系統(tǒng)

    本次設(shè)計任務(wù)是要設(shè)計一個食堂線上預(yù)約點餐系統(tǒng),通過這個系統(tǒng)能夠滿足管理員及學(xué)生的食堂線上預(yù)約點餐分享功能。系統(tǒng)的主要包括首頁、個人中心、學(xué)生管理、菜品分類管理、菜品管理、關(guān)于我們管理、意見反饋、系統(tǒng)管理、訂單管理等功能。 ?開發(fā)語言 node.js 框架:

    2024年02月12日
    瀏覽(26)
  • 基于微信小程序的ssm食堂線上預(yù)約點餐系統(tǒng)源碼和論文

    基于微信小程序的ssm食堂線上預(yù)約點餐系統(tǒng)源碼和論文

    ? ? ? ?在Internet高速發(fā)展的今天,我們生活的各個領(lǐng)域都涉及到計算機(jī)的應(yīng)用,其中包括 食堂線上預(yù)約點餐系統(tǒng) 的網(wǎng)絡(luò)應(yīng)用,在外國線上管理系統(tǒng)已經(jīng)是很普遍的方式,不過 國內(nèi)的 線上管理系統(tǒng) 可能 還處于起步階段 。食堂線上預(yù)約點餐系統(tǒng) 具有食堂線上預(yù)約點餐信息管

    2024年03月11日
    瀏覽(34)
  • 【Vue H5項目實戰(zhàn)】從0到1的自助點餐系統(tǒng)—— 搭建腳手架(Vue3.2 + Vite + TS + Vant + Pinia + Node.js)

    【Vue H5項目實戰(zhàn)】從0到1的自助點餐系統(tǒng)—— 搭建腳手架(Vue3.2 + Vite + TS + Vant + Pinia + Node.js)

    H5 項目基于 Web 技術(shù),可以在智能手機(jī)、平板電腦等移動設(shè)備上的瀏覽器中運行,無需下載和安裝任何應(yīng)用程序,且H5 項目的代碼和資源可以集中在服務(wù)器端進(jìn)行管理,只需更新服務(wù)器上的代碼,即可讓所有顧客訪問到最新的系統(tǒng)版本。 本系列將以肯德基自助點餐頁面為模板

    2024年02月13日
    瀏覽(133)
  • python編程:實現(xiàn)自助點餐小程序,包括自定義菜單,點餐,賬單,結(jié)算等功能

    【題目】實現(xiàn)自助點餐小程序,要求滿足以下要求: ? ? ? ?用戶可以通過輸入菜名和價格自定義菜單,并將定義的菜單顯示出來。接下來,用戶可通過輸入菜單中菜品的名稱進(jìn)行點餐,,用戶點餐完成后提交,顯示出用戶點餐后的賬單,賬單中要包含用戶點的菜單(菜名和

    2024年02月11日
    瀏覽(19)
  • 自助點餐機(jī)Verilog代碼遠(yuǎn)程云端平臺Quartus

    自助點餐機(jī)Verilog代碼遠(yuǎn)程云端平臺Quartus

    名稱:自助點餐機(jī)Verilog代碼遠(yuǎn)程云端平臺Quartus 軟件:Quartus 語言:Verilog 代碼功能: 自助點餐機(jī)設(shè)計, 商品分為7、9、14元三種套餐, 并且只接受5、10元兩種面值的紙幣: 可以一次點多份: 用數(shù)碼管顯示購買數(shù)量、所需金額、找零金額,當(dāng)金額不足時通過蜂鳴器提示 本代碼已

    2024年01月16日
    瀏覽(21)
  • 微信小程序餐飲奶茶掃碼點餐小程序堂食外賣桌臺自助下單源碼

    微信小程序餐飲奶茶掃碼點餐小程序堂食外賣桌臺自助下單源碼

    系統(tǒng)產(chǎn)品主要功能:【外賣】【堂食】【會員】【優(yōu)惠券】【營銷功能】【積分商城】【手機(jī)接單管理】【奶茶店】【餐飲店】【私房外賣】【酒吧/酒店】【小吃店】【便利店】【超市】全方位..... 餐飲5種場景 一、【桌臺號/房問/包廂下單】掃碼下單,服務(wù)員送餐上桌 二、

    2024年02月02日
    瀏覽(30)
  • 【畢業(yè)設(shè)計/課程設(shè)計】基于微信的自助點餐小程序設(shè)計與實現(xiàn)(源碼+文章) 含Java Web管理端

    【畢業(yè)設(shè)計/課程設(shè)計】基于微信的自助點餐小程序設(shè)計與實現(xiàn)(源碼+文章) 含Java Web管理端

    1、數(shù)據(jù)庫:MySQL 2、開發(fā)工具 微信端:微信開發(fā)工具 管理后端:Idea、Eclipse、MyEclipse等Java開發(fā)工具均可 3、服務(wù)器:Tomcat系列均可 微信端采用微信開發(fā)者工具開發(fā),管理后端采用Java語言,MySQL數(shù)據(jù)庫,開發(fā)框架是SSM ? ? ? ? 傳統(tǒng)的點餐模式主要是通過人們到指定地點以及在

    2024年02月04日
    瀏覽(29)
  • Android期末設(shè)計——外賣點餐系統(tǒng)(設(shè)計介紹)

    Android期末設(shè)計——外賣點餐系統(tǒng)(設(shè)計介紹)

    ???? 1.android開發(fā)的綜合訓(xùn)練 ???? 2.提高軟件開發(fā)的綜合能力 ???????? Android Studio 網(wǎng)上訂餐項目是一個類似外賣的項目,其中包含訂餐的店鋪、各店鋪的菜單、購物車以及訂單與付款等模塊。在店鋪列表中可以看到店鋪的名稱、月銷售、起送價格與配送費用、配送時間

    2024年02月03日
    瀏覽(18)
  • 基于安卓Android的校園點餐系統(tǒng)APP(源碼+文檔+部署+講解)

    基于安卓Android的校園點餐系統(tǒng)APP(源碼+文檔+部署+講解)

    畢設(shè)幫助、技術(shù)解答、源碼交流 聯(lián)系方式見文末。 使用點餐系統(tǒng)app相對傳統(tǒng)點餐管理方式具備很多優(yōu)點:首先可以大幅提高點餐信息檢索,只需輸入點餐相關(guān)信息就能在數(shù)秒內(nèi)反饋想要的結(jié)果;其次可存儲大量的點餐信息,同時點餐信息安全性有更高的保障;相比紙質(zhì)文件

    2024年04月16日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包