2012-12-17 57 views
0

所以我一直在尋找這個網站,尋找我正在尋找的答案,但我找不到它。 YouTubes上有很多關於SQLite數據庫的優秀教程,但沒有一個真正做我想要的。SQLiteDatabase。將信息存儲在列表視圖中

我正在做一個遊戲,在遊戲中我希望球員能夠選擇他們希望(向商店)購買,當他們購買該項目,它將被保存到數據庫中的一個項目。然後,當他們要麼進入他們的庫存,要麼進入商店內的「銷售」屏幕時,該列表視圖將顯示他們在庫存中的內容。

我有店鋪完全安裝。即,他們可以購買的物品,當他們選擇一個物品時,會彈出一個撥號盤,詢問他們是否想要購買它,如果是,它會減去他們擁有的黃金並將該物品添加到數據庫中。

^只有一部分的心不是工作就是把它添加項目到數據庫的一部分。

下面是一些代碼:

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」方法並保存數據,但是在玩家購買了一件物品之後,我必須將它們發送到庫存屏幕,這非常煩人,人們不會喜歡這樣的...

+0

您的問題在當前狀態下不可回答。什麼阻止你在數據庫中插入用戶選擇的項目? – Luksprog

+0

問題是我不知道如何。我正在尋找可以用來基於我想要做的事情的材料。就像創建一個可以使用列表視圖並提取數據的數據庫一樣。 –

+0

@CoreyWilliams:可以使任何數據庫數據與ListView一起工作。 ListView類使用了一種基本上將源數據(數組,數據庫等)粘貼到ListView的Adapter。我的建議是退後一步,做一些基本的'ListView'教程,然後查看'SQLiteOpenHelper'來創建/管理數據庫,然後查看'SimpleCursorAdapter'來查詢數據庫並使用它來填充'ListView'。 – Squonk

回答

0

這涉及一些數據庫設計和應用程序設計。

您應該具有存儲可購買的物品的表。如果你有,那麼很容易顯示可供購買的物品和他們的成本,並且你可以用各種方式將數據庫與你的應用程序分配。

接下來,你需要存儲用戶已經購買的物品的表。

現在,購買物品,用戶去購買活動。您檢查用戶的餘額,在項目表中查詢用戶可以購買的項目,並在列表視圖中顯示。用戶點擊一個項目,從用戶的餘額中扣除成本,並將項目存儲在用戶的庫存視圖中。

「確認」是沒有必要的。相反,有一個「撤消」或「刪除」選項。