当我们在编辑框中输入该名称时,如何在SQLite数据库中自动插入名称?

时间:2016-04-20 20:10:03

标签: android sqlite

我的实际意思是我想创建一个应用程序,其中UI中会有Template.postsList.onCreated(function () { var self = this; self.autorun(function () { var page = parseInt(FlowRouter.getParam('page')); if (page == undefined || page < 0 || isNaN(page)) { page = 0; } var handle = Session.get('postPreviewsHandle'); if (handle) { console.dir(handle); handle.stop(); // Error! Function doesn't exist because this is only a string } // Meteor.subscribe() behaves the same way here handle = self.subscribe('postPreviews', page); Session.set('postPreviewsHandle', handle); }); }); ,并且某些名称将存储在数据库中,如果我输入名称的第一个单词,在数据库中,名称应该像textbox视图一样自动出现,但是当我们在搜索框中键入不在数据库中的新名称时,它应该在数据库中自动添加新名称

1 个答案:

答案 0 :(得分:0)

所以你要做的是(1)在用户输入时用名称填充SQLite数据库 - 但是(2)你总是想要检索数据库中的名称并将它们用作自动完成的建议。

对于(1)这是一个关于SQLite in Android的完整和完整的教程 - 这应该涵盖你需要做的事情(包括更新/删除)。更具体地说,您希望存储用户在文本框中输入的内容 - 如下所示:

....
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
//supposing you declared the edit-text as (edtName) properly before...
String nameValue = edtName.getText().toString();
contentValues.put("name", name);
db.insert("<tablename>", null, contentValues);

对于(2) - 自动填充 - 我建议您查看this AutoComplete example以及AutoCompleteTextView参考。由于您要从SQLite中检索建议,因此应首先从数据库中检索列表名称,然后实例化您的适配器 - 示例(适应您的用例):

    //supposing you have a helper method "getNames" which executes select * query
    //and returning list of all names...
    String[] namesFromDB = yourDBHelper.getNames();
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, namesFromDB);
    AutoCompleteTextView textView = (AutoCompleteTextView)findViewById(R.id.names_list);
    textView.setAdapter(adapter);

我希望这能让你开始。