gpt4 book ai didi

Android - 带有自定义建议的搜索对话框

转载 作者:太空宇宙 更新时间:2023-11-03 12:58:11 25 4
gpt4 key购买 nike

我有一个搜索对话框,需要从数据库中启用建议,如此处所示 http://developer.android.com/images/search/search-suggest-custom.png .

当我单击操作栏菜单项时,我的搜索对话框将显示在顶部。当用户开始输入一些文本时,它应该搜索数据库并相应地显示建议。到目前为止,我有一个搜索对话框,但是当用户输入一些文本时,没有显示任何建议。

我的内容提供者:

public class MyCustomSuggestionProvider extends ContentProvider {
SQLiteDatabase db;
SQLiteQueryBuilder qb;
String sqlTables = "countries";

@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
return 0;
}

@Override
public String getType(Uri uri) {
return null;
}

@Override
public Uri insert(Uri uri, ContentValues values) {
return null;
}

@Override
public boolean onCreate() {

return false;
}
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
MyDatabase myDB = new MyDatabase(getContext());
db = myDB.getReadableDatabase();
Cursor c = null;

if (selectionArgs != null && selectionArgs.length > 0
&& selectionArgs[0].length() > 0) {

qb = new SQLiteQueryBuilder();
String[] sqlSelect = { "name" };
qb.setTables(sqlTables)

c = qb.query(db, null, selection, selectionArgs, null, null,
null);
c.moveToFirst();
} else {
return null;
}
return c;
}
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
return 0;
}

}

我的 list :

    <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Visa" >
<provider
android:name="com.m7.visa.contentprovider.MyCustomSuggestionProvider"
android:authorities="com.m7.visa.contentprovider.MyCustomSuggestionProvider" >
</provider>

<activity
android:name="com.m7.visa.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>

<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
</application>

我的可搜索配置:

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:hint="hint..."
android:label="@string/app_name"
android:searchSuggestAuthority="com.m7.visa.contentprovider.MyCustomSuggestionProvider"
android:searchSuggestIntentAction="android.intent.action.VIEW"
android:searchSuggestSelection=" ?" >

</searchable>

知道我哪里出错了吗?

最佳答案

问题出在问号 android:searchSuggestSelection="?">。当您在搜索 View 中键入“something”时,它会传递“something”,空格在左侧。所以解决方案是删除空格,但是 '?'是 Android XML 文件中的特殊字符,这意味着您必须对它进行转义。

所以最终的解决方案是 android:searchSuggestSelection="\?">

关于Android - 带有自定义建议的搜索对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15878168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com