在字母单击时填充 AutocompleteTextView
Fill AutocompleteTextView on letter click
我正在制作字典应用程序,数据库包含超过 50k words.I 我正在使用 AutoCompleteTextView
在用户搜索时显示单词。我认为一开始加载所有数据并与AutoCompleteTextView
绑定将是一项艰巨的任务,所以我想到了在按键事件发生时加载数据。
为每个按钮按下事件访问数据库也是一个坏主意,因为它很重,那么有什么最佳方法可以做到这一点吗?。由于应用程序大小很重要,所以我不喜欢使用 Realm 或任何其他数据库。
任何帮助将不胜感激
您可以将 FilterQueryProvider
之类的过滤器与 LIKE %
命令一起使用,这将尝试更有效地匹配字符,而不是仅仅提取全部信息。
示例,
// select query
String sql = "";
sql += "SELECT * FROM " + tableName;
sql += " WHERE " + fieldObjectName + " LIKE '%" + searchTerm + "%'";
sql += " ORDER BY " + fieldObjectId + " DESC";
sql += " LIMIT 0,5";
来源:
Android AutocompleteTextView with Database
性能优化提示:
为您的列创建索引并通过运行 查询分析避免扫描操作。扫描操作比搜索操作慢得多。
Activity:
AutoCompleteTextView text;
String[] languages= {"Android ","java","IOS","SQL","JDBC","Web services"};
text=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
ArrayAdapteradapter = newArrayAdapter(this,android.R.layout.simple_list_item_1,languages);
text.setAdapter(adapter);
text.setThreshold(1);
您可以在 addTextChangedListener() 的帮助下以很少的步骤完成此操作。
也可以参考this
我正在制作字典应用程序,数据库包含超过 50k words.I 我正在使用 AutoCompleteTextView
在用户搜索时显示单词。我认为一开始加载所有数据并与AutoCompleteTextView
绑定将是一项艰巨的任务,所以我想到了在按键事件发生时加载数据。
为每个按钮按下事件访问数据库也是一个坏主意,因为它很重,那么有什么最佳方法可以做到这一点吗?。由于应用程序大小很重要,所以我不喜欢使用 Realm 或任何其他数据库。
任何帮助将不胜感激
您可以将 FilterQueryProvider
之类的过滤器与 LIKE %
命令一起使用,这将尝试更有效地匹配字符,而不是仅仅提取全部信息。
示例,
// select query
String sql = "";
sql += "SELECT * FROM " + tableName;
sql += " WHERE " + fieldObjectName + " LIKE '%" + searchTerm + "%'";
sql += " ORDER BY " + fieldObjectId + " DESC";
sql += " LIMIT 0,5";
来源:
Android AutocompleteTextView with Database
性能优化提示:
为您的列创建索引并通过运行 查询分析避免扫描操作。扫描操作比搜索操作慢得多。
Activity:
AutoCompleteTextView text;
String[] languages= {"Android ","java","IOS","SQL","JDBC","Web services"};
text=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
ArrayAdapteradapter = newArrayAdapter(this,android.R.layout.simple_list_item_1,languages);
text.setAdapter(adapter);
text.setThreshold(1);
您可以在 addTextChangedListener() 的帮助下以很少的步骤完成此操作。
也可以参考this