zhuanglu392954 2015-10-24 06:15 采纳率: 0%
浏览 1154

求教一个简单点餐系统的制作

先开始列出一些固定的已有的菜名和定价
然后可以选择桌号 同时可以多选菜
选好后点确定 跳转到另一个界面
显示已选的菜和定价 并且结算总价
然后创建一个新数据库把数据保存到这个数据库上(如果有可能 那么再创建一个服务端用于接受这个数据库)

我现在会的也就只有界面跳转
listview显示字符串可以勉强做出
其他不会

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 13:39
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这是一个简单的菜单系统设计:

    1. 创建一个新的Android项目。

    2. res/layout目录下创建一个布局文件,例如menu.xml。在这个布局文件中,使用<TextView>标签来显示菜单项,以及一个<Button>标签来选择菜单项。

    3. MainActivity.java中,使用Intent来打开MenuActivity。在onCreate()方法中,调用startActivity(new Intent(this, MenuActivity.class));

    4. MenuActivity.java中,使用ListView来显示菜单项,并提供一个按钮来选择菜单项。当用户点击菜单项时,调用onOptionsItemSelected()方法处理事件。

    5. MenuItem类中,实现onOptionsItemSelected()方法来响应用户的点击操作。在这个方法中,你可以获取用户的选择,然后更新列表视图并计算总价格。

    6. 最后,你需要创建一个DatabaseHelper类来管理数据库。这个类应该包含一个构造函数、一个getWritableDatabase()方法和一个insertData()方法。当你添加新的菜单项时,你应该调用这个方法将它们插入到数据库中。

    7. 当用户点击“提交”按钮时,调用insertData()方法并将所有选定的菜单项添加到数据库中。

    8. 最后,你可能还需要实现一些UI相关的功能,比如加载菜单项到列表视图、计算总价格等。

    以下是一个基本的示例代码:

    public class MainActivity extends AppCompatActivity {
        private ListView listView;
        private DatabaseHelper dbHelper;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            // 初始化数据库助手
            dbHelper = new DatabaseHelper(this);
    
            // 获取列表视图
            listView = findViewById(R.id.listView);
    
            // 添加菜单项
            List<String> menuItems = new ArrayList<>();
            menuItems.add("菜品一");
            menuItems.add("菜品二");
            menuItems.add("菜品三");
    
            // 将菜单项添加到列表视图
            for (String menuItem : menuItems) {
                addMenuItem(menuItem);
            }
    
            // 设置监听器以处理菜单项的选择
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    String selectedMenuItem = (String) parent.getItemAtPosition(position);
                    updatePrice(selectedMenuItem);
                }
            });
    
            // 提交按钮
            Button submitButton = findViewById(R.id.submitButton);
            submitButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 提交菜单项到数据库
                    dbHelper.insertData();
                }
            });
        }
    
        private void addMenuItem(String menuItem) {
            // 尝试向数据库中添加菜单项
            // 如果失败,则抛出异常
            try {
                dbHelper.getWritableDatabase().insert("menu_items", null, createInsertValues(menuItem));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        private ContentValues createInsertValues(String menuItem) {
            ContentValues values = new ContentValues();
            values.put("item_name", menuItem);
            return values;
        }
    
        private void updatePrice(String menuItem) {
            // 根据菜单项的价格更新列表视图
            // 如果没有找到匹配的菜单项,则返回
            if (!hasMenuItem(menuItem)) {
                return;
            }
    
            TextView priceView = (TextView) findViewById(R.id.priceView);
            double price = 0;
            // 根据数据库中的价格更新价格视图
            // 如果找不到匹配的菜单项,则返回
            if (price == 0) {
                return;
            }
            priceView.setText(Double.toString(price));
        }
    
        private boolean hasMenuItem(String menuItem) {
            Cursor cursor = dbHelper.getReadableDatabase()
                .rawQuery("SELECT * FROM `menu_items` WHERE item_name=?", new String[]{menuItem});
            return cursor.getCount() > 0;
        }
    }
    

    注意:以上代码只是一个基本的示例,实际的实现可能会更复杂。例如,你可能需要处理更多的错误情况,或者添加更多的功能,如排序、筛选等。

    评论

报告相同问题?