SQLiteDatabase。将信息存储在列表视图中

时间:2012-12-17 20:02:47

标签: android android-sqlite

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

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

我完全设置了商店。即 - 他们可以购买的物品,当他们选择一个物品时,会弹出一个拨号并询问他们是否想要购买它,如果是的话,它会减去他们所拥有的金币并将该物品添加到数据库中。

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

以下是一些代码:

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”方法并保存数据,但是在玩家购买物品后,我必须将它们发送到库存屏幕,这非常烦人,人们不会喜欢...

1 个答案:

答案 0 :(得分:0)

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

您应该有一个存储可以购买的商品的表格。如果你有这个,那么很容易显示可供购买的物品及其成本,你可以用各种方式在你的应用程序中分发数据库。

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

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

不需要“确认”。相反,请选择“撤消”或“删除”。