2014-12-07 22 views
0

我只是在我的項目開始,我是堆棧! 這是一個學校項目,我需要創建一個應用程序,可以(理論上)從遠距離的餐館點餐,並且通過它可以輕鬆訂購和支付。 對於我需要使用數據庫,我需要建立表產品,該餐廳是在暗示,表爲不同的類別用戶表和預訂表。 這些都是列每個表:在android studio中使用DataBase,我該如何創建DataBase?我如何在不同的活動中使用它?

//product table columns 
public static final String PRODUCT_KEY_ID = "id"; 
public static final String PRODUCT_KEY_NAME = "name"; 
public static final String PRODUCT_KEY_CATEGORY = "category"; 
public static final String PRODUCT_KEY_PRICE= "price"; 
public static final String PRODUCT_KEY_QUANTITY= "quantity"; 

//category table columns 
public static final String CATEGORY_KEY_ID = "id"; 
public static final String CATEGORY_KEY_NAME = "name"; 

//users table columns 
public static final String USERS_KEY_ID = "id"; 
public static final String USERS_KEY_NAME = "name"; 
public static final String USERS_KEY_PASSWORD = "password"; 
public static final String USERS_KEY_MAIL = "mail"; 

//reservation table columns 
public static final String RESERVATION_KEY_ID = "id"; 
public static final String RESERVATION_KEY_USERID = "user"; 
public static final String RESERVATION_KEY_PRICE = "price"; 
public static final String RESERVATION_KEY_PAID = "is_it_paid"; 

如何建立我的數據庫,以便每一個活動將能夠首次創建後訪問它? **編輯:**我已經創建了「CREATE_TABLE_NAME」,它是發送給SQL的字符串。

我有麻煩實施MainClass中的DataBase文件的onCreate。還需要以某種方式保存我的數據,以便我可以從另一個活動訪問它(更新數據庫並從中讀取)。

非常感謝很抱歉的長問題。 :)

+0

「主類」是什麼意思?我在答案中提到的方式可能來自每個片段或活動等。您可以從我的答案中對'database'對象執行所有操作。 – staaar 2014-12-07 20:11:11

回答

0

查看API文檔here。這個例子給你一個很好的課程設計,你可以遵循。 的簡短摘要:

  • 使類SQLiteOpenHelper
  • 覆蓋的子類onCreate(SQLiteDatabase db)
  • db

執行您sql create statement你到處都可以與你的情況下,從例如訪問一個片段或活動:

// Create an instance of your SQLiteOpenHelper Subclass (in this case YourDB) 
YourDB yourDB = new YourDB(this); // the parameter here is a context. (see the API example) 
SQLiteDatabase database = yourDB.getReadableDatabase(); // or: yourDB.getWriteableDatabse() for insert/delete/ update operations. 
// do your stuff with the database 
// .... 
// and remember to close them: 
yourDB.close(); 
database.close(); 

如果您創建一個新對象,Android運行時將不會創建一個完整的新數據庫。

+0

首先謝謝,我如何保存上下文以便我可以再次使用它? – ofekm97 2014-12-07 20:17:30

+0

在片段或活動中,不需要保存上下文!你的活動繼承自'android.content.ContextWrapper',所以你可以簡單地在上面的調用中調用'this'。碎片有getActivity()方法返回關聯的活動 - 所以你有另一個有效的上下文ContextWrapper的子類。 – staaar 2014-12-07 20:22:38

+0

所以我的主要活動onCreate shuold看起來像這樣:
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DBData dbData = new DBData(this);
}
並且在另一個活動中使用它應該看起來像這樣:
DBData dbData = new DBDate(getCallingActivity()); ? – ofekm97 2014-12-07 20:39:20

相關問題