好的,我一直在关注这个教程http://coenraets.org/blog/android-samples/androidtutorial/ 基本上它给了我我的应用程序所需的确切内容
只有我需要自动搜索按钮(或查询)...
我希望用户打开应用并查看已查询的列表
我也已将本教程集成到Tab应用程序中,因此请记住这一点......
请任何帮助都会很棒!!!非常感谢你抽出宝贵的时间来帮助我解决这个愚蠢的事情
我是一个完整的菜鸟,我正在学习
Thanka再一次!
法迪
答案 0 :(得分:0)
看这里http://developer.android.com/reference/android/text/TextWatcher.html
试试这个:
EditText searchTo = (EditText)findViewById(R.id.medittext);
searchTo.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// autoclicked here!
}
});
答案 1 :(得分:0)
我认为实现'自动点击'的最佳方式是通过textwatcher-interface:
http://developer.android.com/reference/android/text/TextWatcher.html
像这样:
EditText.addTextChangedListener(...)
afterTextChanged(Editable s)
{
//Make your query here using s.getText().toString
//as your WHERE-Clause
}
我建议你,使用TextWatcher进行调试只是为了了解它是如何工作的;) 您还应该考虑此方法可能耗尽大量内存,因为您使用键入的每个字母查询数据库。您可以在
中计算输入的字母数onTextChanged(CharSequence s, int start, int before, int count)
并将布尔值设置为true,当用户键入超过2个字母并开始查询您的数据库,然后避免过多的内存使用。
编辑:
这是原始搜索方法:
public void search(View view) {
// || is the concatenation operation in SQLite
cursor = db.rawQuery("SELECT _id, firstName, lastName, title FROM employee WHERE firstName || ' ' || lastName LIKE ?",
new String[]{"%" + searchText.getText().toString() + "%"});
adapter = new SimpleCursorAdapter(
this,
R.layout.employee_list_item,
cursor,
new String[] {"firstName", "lastName", "title"},
new int[] {R.id.firstName, R.id.lastName, R.id.title});
employeeList.setAdapter(adapter);
}
现在试试这样:
searchText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
afterTextChanged(Editable s){
// || is the concatenation operation in SQLite
cursor = db.rawQuery("SELECT _id, firstName, lastName, title FROM employee WHERE firstName || ' ' || lastName LIKE ?",
new String[]{"%" + s.getText().toString() + "%"});
adapter = new SimpleCursorAdapter(
this,
R.layout.employee_list_item,
cursor,
new String[] {"firstName", "lastName", "title"},
new int[] {R.id.firstName, R.id.lastName, R.id.title});
employeeList.setAdapter(adapter);
}
});
代码中有一些空白,你必须自己填写。但这是我第一篇文章背后的基本想法。