簡體   English   中英

如何使用SQLiteOpenHelper將參數傳遞給onOpen()函數

[英]How to pass parameter to onOpen() function using SQLiteOpenHelper

我正在嘗試創建待辦事項列表。 為此,我需要將用戶的任務存儲在數據庫中。 為此,我選擇使用SQLiteOpenHelper。

我以這種方式進行:

  1. 獲取用戶輸入
  2. 使用getWritableDatabase()+ onCreate()函數創建數據庫
  3. 將用戶的輸入存儲在數據庫中----->不知道要這樣做。

     String task = String.valueOf(taskEditText.getText()); DatabaseHandler access = new DatabaseHandler(getApplication()); access.getWritableDatabase(); 

創建數據庫(該函數為@Override,但無法正確設置其格式)

public class DatabaseHandler extends SQLiteOpenHelper {

   public void onCreate(SQLiteDatabase db) {
         Log.d(TAG, "===Inside onCreate from DatabaseHandler===");
         String database_table = "CREATE TABLE task(ID INT NOT NULL, TASK CHAR(25), STATE CHAR(25))";
         db.execSQL(database_table);
     }
}

如您所見,我使用.getText()函數獲取用戶的輸入。 然后,我使用.getWritableDatabase()啟動onCreate()函數,最后,當數據庫打開時會自動調用onOpen(SQLiteDatabase db)。 但是,我無法修改函數的原型,即使可以,也無法將參數傳遞給它。 (假設有可能)。

所以我想知道如何將參數傳遞給onOpen()函數以將用戶輸入添加到數據庫中?

編輯:

我最初的問題是知道如何將參數傳遞給onCreate()函數。 但是我意識到我想傳遞給onOpen()函數而不是onCreate()。

謝謝

所以我想知道如何將參數傳遞給onCreate()函數以將用戶輸入添加到數據庫中?

你不知道 您可以使用getWritableDatabase()返回的SQLiteDatabase將用戶輸入添加到數據庫中。

另外,請在后台線程上執行數據庫I / O; 您當前的代碼正在主應用程序線程上執行此操作,從而在進行I / O操作時凍結了UI。

在任何有關Android應用程序開發的體面的書或課程中都涵蓋了這兩個主題。

您不會將用戶輸入傳遞給onOpen 您將其添加到在onCreate創建的數據庫的表中。 然后,您將使用:

ContentValues values = new ContentValues()
values.put(COLUMN_TASK, task);
// Add any more columns here

access.getWritableDatabase().insert(TABLE_NAME, null, values);

詳情請看這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM