0

だから私は探している答えをこのサイトで探していましたが、それを見つけることができません. YouTube には SQLite データベースの優れたチュートリアルがたくさんありますが、実際に私が望むことを行うものはありません。

私はゲームを作っていますが、ゲーム内でプレイヤーが (ショップから) 購入したいアイテムを選択できるようにしたいのですが、そのアイテムを購入するとデータベースに保存されます。次に、在庫またはショップ内の「販売」画面に移動すると、リストビューに在庫にあるものが表示されます。

お店を完全にセットアップしました。つまり、購入できるアイテムです。アイテムを選択するとダイアログがポップアップし、購入するかどうか尋ねられます。購入する場合は、所有しているゴールドが差し引かれ、アイテムがデータベースに追加されます。

^ 機能していない唯一の部分は、アイテムをデータベースに追加する部分です。

ここにいくつかのコードがあります:

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

これには、いくつかのデータベース設計とアプリケーション設計が含まれます。

購入できるアイテムを格納するテーブルが必要です。それがあれば、購入可能なアイテムとその価格を表示するのは簡単で、さまざまな方法でアプリでデータベースを配布できます。

次に、ユーザーが購入したアイテムを格納するテーブルが必要です。

ここで、アイテムを購入するために、ユーザーは購入アクティビティに移動します。ユーザーの残高を確認し、items テーブルに対してユーザーが購入できるアイテムをクエリし、これをリスト ビューに表示します。ユーザーがアイテムをクリックすると、ユーザーの残高からコストが差し引かれ、アイテムがユーザーのインベントリ ビューに保存されます。

「確認」は必要ありません。代わりに、「元に戻す」または「削除」オプションを用意してください。

于 2012-12-17T21:03:05.110 に答える