Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-带有自定义建议的搜索对话框_Android_Search - Fatal编程技术网

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

Android-带有自定义建议的搜索对话框,android,search,Android,Search,我有一个搜索对话框,需要从数据库中启用建议,如下所示 单击操作栏菜单项时,我的搜索对话框将显示在顶部。当用户开始输入一些文本时,它应该搜索数据库并相应地显示建议。现在,我有一个搜索对话框,但是当用户键入一些文本时,不会显示任何建议 我的内容提供商: public class MyCustomSuggestionProvider extends ContentProvider { SQLiteDatabase db; SQLiteQueryBuilder qb; Strin

我有一个搜索对话框,需要从数据库中启用建议,如下所示

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

我的内容提供商:

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;
    }

}
我的舱单:

    <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=“?”>行中的空格


对于
android:searchSuggestSelection=“?”>
问题在于问号
android:searchSuggestSelection=“?”>
。当您在搜索视图中键入'something'时,它将传递'something',左边有空格。所以解决方案是删除空格,但是“?”是Android XML文件中的一个特殊字符,这意味着您必须转义它


因此,最终的解决方案是android:searchSuggestSelection=“\?”>

您得到的错误是什么?@HarshaMV我没有得到任何错误,当我在搜索对话框中键入内容时,没有显示任何建议