![](/img/trans.png)
[英]how do I pass a parameter to the @OnOpen method with JEE7 Websockets,
[英]How to pass parameter to onOpen() function using SQLiteOpenHelper
我正在尝试创建待办事项列表。 为此,我需要将用户的任务存储在数据库中。 为此,我选择使用SQLiteOpenHelper。
我以这种方式进行:
将用户的输入存储在数据库中----->不知道要这样做。
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.