- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试修改 open source dictionary project它使用 ActionBarSherlock
SearchView$SearchAutoComplete
。例如,我有一个名为“Google Play”的条目。 SearchView
能够在我键入“Google”时返回建议,但如果我搜索“Play”则不会出现这种情况。如何使 SearchView
能够搜索包含文本的条目?
public boolean onQueryTextChange(String newText) {
if (MdxDictBase.isMdxCmd(newText)){
currentEntry.setEntryNo(DictEntry.kSystemCmdEntryNo);
}
if (!skipUpdateEntryList) {
dict.locateFirst(newText, true, true, true, false, currentEntry);
syncHeadwordList();
}
skipUpdateEntryList = false;
return true; //return false if want the system provide a suggestion list?
}
完整代码可以found here .
这是我 found from here 的 Cursor
查询.
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
Log.d(TAG, "Got query:" + uri.toString());
if (uri.getPath() != null && uri.getPath().startsWith(SEARCH_PATH)) {
if (fCurrentDict != null && fCurrentDict.isValid()) {
String query=uri.getLastPathSegment();
if (query!=null && query.length()>0){
DictEntry entry = new DictEntry(0, "", fCurrentDict.getDictPref().getDictId());
if (query != null && query.length() > 0)
fCurrentDict.locateFirst(query, true, false, true, false, entry);
if (entry.isValid()) {
String limit = uri.getQueryParameter(SearchManager.SUGGEST_PARAMETER_LIMIT);
int maxResultCount = 20;
if (limit != null && limit.length() > 0) {
try {
maxResultCount = Integer.parseInt(limit);
} catch (NumberFormatException e) {
e.printStackTrace();
}
}
ArrayList<DictEntry> entryList = new ArrayList<DictEntry>();
fCurrentDict.getEntries(entry, maxResultCount, entryList);
String[] columns = new String[]{
BaseColumns._ID,
SearchManager.SUGGEST_COLUMN_TEXT_1,
SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID,
SearchManager.SUGGEST_COLUMN_SHORTCUT_ID};
MatrixCursor cursor = new MatrixCursor(columns, maxResultCount);
Object[] row;
for (DictEntry cur_entry : entryList) {
String intentDataId = String.format("%d_%d_%s", cur_entry.getDictId(), cur_entry.getEntryNo(), cur_entry.getHeadword());
row = new Object[]{cur_entry.hashCode(), cur_entry.getHeadword(), intentDataId, SearchManager.SUGGEST_NEVER_MAKE_SHORTCUT};
cursor.addRow(row);
}
return cursor;
}
}
}
}
return null;
}
这是我 found from here 中的 locateFirst
方法.
/**
* Locates the first entry that match the specified headword
*
* @param headword Headword to be searched for
* @param convertKey Convert the given headword into different Chinese form according to dictionary settings?
* @param partialMatch Match partial of the headword. For example "abc" can be matched with "abd" headword search
* @param entry The matched entry if found
* @return Return kMdxSuccess when succeed, otherwise return error codes.
*/
public synchronized int locateFirst(String headword, boolean convertKey, boolean partialMatch, boolean startWithMatch, boolean bestMatch, DictEntry entry) {
if (isValid()) {
return locateFirstN(headword, convertKey, partialMatch, startWithMatch, bestMatch, entry);
} else {
return kMdxDatabaseNotInited;
}
}
最佳答案
在 TextChanged 事件上使用 .Contains 字符串方法。然后根据该方法执行所需的搜索。希望对你有帮助
关于android - 在 SearchView AutoCompleteTextView 中搜索包含特定字符的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43041865/
当用户点击 ACTV 并找到他正在搜索的内容时,他再次选择 ACTV 的唯一原因是搜索其他内容。我正在寻找一种方法,当用户在 ACTV 中进行搜索并且搜索文本位于 ACTV 字段中(建议菜单已关闭)时
当我单击 AutoCompleteTextView 的建议时,我希望光标移动到下一个可用的 EditBox 或 AutoCompleteTextView。 我在下面附上了我的布局和我的应用图像文件。在
我有一个 AppCompatAutoCompleteTextView,其 anchor 比 AppCompatAutoCompleteTextView 更靠下。这是设计使然,无法更改。当我在下拉菜单上
我正在使用 3 个 AutocompleteTextViews 来建议来自数据库的条目。我对 AutocompleteTextView 进行了子类化处理,以便在单击时将默认文本设置为 null,并在移
我正在使用 AutoCompleteTextView 创建下拉菜单。如何删除列表顶部和底部的默认边距? 重新创建: List dropdownItems
我正在尝试让 TextWatcher 与 AutoCompleteTextView 一起工作,但遇到了一些问题。我面临的问题是,当我开始输入文本时,如果数据输入的长度只有一个字符,我在 AutoCom
即使我没有在下拉列表项布局中设置边距,下拉列表也带有左右边距。我希望它与 autocompletetextview 的宽度相匹配。我怎样才能做到这一点? 这是我的 AutoCompleteTextVi
我的应用实现了一个 HashMap,这样当在 AutoCompleteTextView editText 中键入 key 时,并且用户单击下拉项,该值将显示在textView上。 唯一的问题是,单击的
这里是 Android 菜鸟,之前是 iOS、.Net、C 和 Fortran。 如果我有一个带有 1000 多个字符串的 ArrayAdapter,我如何修改 AutoCompleteTextVie
嗨,我刚刚开始学习 android Studio,我想要一个 AutoCompletetextView 和一个按钮,如果用户输入未在数组列表中列出,则添加用户输入。我的 AutoCompleteTex
我正在开发一个使用 AutoCompleteTextView 的应用程序,但遇到了一些问题。请在下面查找问题的详细信息。 数据中存在以下值: 1)曼尼什·洛根·杰恩 2)M.J.(洛根·费恩) 3)洛
我正在尝试根据另一个 View (微调器)中选择的选项来更改 AutoCompleteTextView 的建议列表。不幸的是,这个 TextView 的适配器似乎没有从另一个 View 的 setOn
我有这个布局: 使用这种风格: @color/text_input_layout_outlined_box_stroke @color/green_2 我试图在自动
我正在尝试使用 AutoCompleteTextView 进行过滤,但过滤器出现问题。它返回 ArrayList 中的所有项目,而不是过滤后的项目。下面是我的代码: Filter nameFilte
我想制作一个 AutoCompleteTextview ,它将从内部存储加载以前保存的建议。我成功地将字符串从内部存储加载到字符串数组(我使用日志记录来检查......)。 然后,当我将字符串数组加载
我有一个 AutoCompleteTextView,我想在它上面设置一个过滤器,我遇到的问题是当我去输入一些东西时它只会让我在文本字段中输入 1 个字符。如果我从代码中删除 textView.setF
我有两个自动完成 TextView 例如,如果任何人选择自动完成 TextView “HUB ID”位置#3,则另一个自动完成 TextView “HUBName”必须强制位于位置 3即希望它们都处于
您好 Android 开发人员, 我有一个关于自动完成 TextView 的问题。我在平板电脑上开发,我很好地定制了它。当我在平板电脑上运行它时,它看起来像这样: 这实际上是我想要的 - 所有可见的东
我正在处理一项要求,其中使用自动完成 TextView 来获取匹配的Localities。用户必须输入几个字符,然后从服务器返回与这些字符匹配的 Localities 列表。自动完成 TextView
使用 Bootstrap 的 Web 应用程序,有这样的输入区域。 在 Android 中有没有像这样实现 EditText 的库? 最佳答案 是的,完成的泡泡在Android中被称为“筹码”。工作解
我是一名优秀的程序员,十分优秀!