我的实际意思是我想创建一个应用程序,其中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
视图一样自动出现,但是当我们在搜索框中键入不在数据库中的新名称时,它应该在数据库中自动添加新名称
答案 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);
我希望这能让你开始。