0

所以我一直在通过这个网站搜索我正在寻找的答案,但我找不到它。关于 SQLite 数据库的 YouTube 上有很多很好的教程,但没有一个能真正做到我想要的。

我正在制作一个游戏,在游戏中我希望玩家能够选择他们想要购买的物品(从商店),当他们购买该物品时,它将被保存到数据库中。然后,当他们进入他们的库存或商店内的“出售”屏幕时,列表视图将显示他们的库存中的内容。

我已经完全建立了商店。即 - 他们可以购买的物品,当他们选择一个物品时,会弹出一个对话框并询问他们是否要购买它,如果是,它将减去他们拥有的黄金并将该物品添加到数据库中。

^ 唯一不工作的部分是将项目添加到数据库的部分。

这是一些代码:

String[] MeleeArmour = new String[] {

    "--- Melee Armour ---",

    "(100G) Bronze Helmet", "(250G) Bronze Chestplate",
            "(125G) Bronze Leggings", "(100G) Bronze Boots" //etc....

--

MeleeArmourList.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            switch (position) {
            case 1:
                // (100G) Bronze Helmet

                AlertDialog.Builder dlgAlert = new AlertDialog.Builder(
                        Shop.this);
                dlgAlert.setMessage("Purchase Bronze Helmet?");
                dlgAlert.setTitle("Shop");
                dlgAlert.setPositiveButton("Buy",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int which) {
                                if (Integer.parseInt(textViewShopGoldValue1
                                        .getText().toString()) >= 100) {
                                    int gold1 = Integer
                                            .parseInt(textViewShopGoldValue1
                                                    .getText().toString()) - 100;
                                    textViewShopGoldValue1.setText(""
                                            + gold1);
                                    Toast msg = Toast.makeText(Shop.this,
                                            "Bronze Helmet added to inventory",
                                            Toast.LENGTH_SHORT);
                                    msg.show();

                                 //this is where I need to add the item to a database

                                } else {
                                    Toast msg = Toast.makeText(Shop.this,
                                            "You don't have enough gold!",
                                            Toast.LENGTH_SHORT);
                                    msg.show();
                                }
                                dialog.dismiss();
                            }
                        });
                dlgAlert.setNeutralButton("View info",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int which) {

                                dialog.dismiss();
                            }
                        });
                dlgAlert.setNegativeButton("Cancel",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int which) {

                                dialog.dismiss();
                            }
                        });
                dlgAlert.setCancelable(false);
                dlgAlert.create().show();

                break;

有人有想法么?我将如何设置数据库以使用我想要的。或者有什么不同的方法可以做吗?我尝试在其中执行“putExtra”方法并保存数据,但是在玩家购买物品后,我必须将它们发送到库存屏幕,这很烦人,人们不会喜欢...

4

1 回答 1

0

这涉及到一些数据库设计和应用程序设计。

您应该有一个表来存储可以购买的物品。如果你有它,那么很容易显示可供购买的物品及其成本,并且你可以通过各种方式将数据库与你的应用程序一起分发。

接下来,您需要一个表来存储用户购买的商品。

现在,要购买商品,用户会前往购买活动。您检查用户的余额,查询项目表以获取用户可以购买的项目,并将其显示在列表视图中。用户单击一个项目,您从用户的余额中扣除成本,并将该项目存储在用户的库存视图中。

不需要“确认”。相反,有一个“撤消”或“删除”选项。

于 2012-12-17T21:03:05.110 回答