Android SearchView на панели действий не работает

Прежде всего извините, если я новичок в Android и Java и все еще хочу реализовать что-то для своей диссертации относительно приложения, которое я создаю, я просто хочу, чтобы на панели действий было представление поиска для определенного действия для поиска соответствующих букв или слова в поиске моего пользовательского списка... и я не знаю, что добавить в "doMySearch (строковый запрос)", чтобы получить результаты.

SearchResultsActivity.java

  import android.app.ActionBar;
  import android.app.ListActivity;
  import android.app.SearchManager;
  import android.content.Intent;
  import android.os.Bundle;
  import android.widget.TextView;

  public class SearchResultsActivity extends ListActivity {

private TextView txtQuery;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_search_results);

    // get the action bar
    ActionBar actionBar = getActionBar();

    // Enabling Back navigation on Action Bar icon
    actionBar.setDisplayHomeAsUpEnabled(true);

    txtQuery = (TextView) findViewById(R.id.txtQuery);

    handleIntent(getIntent());
}

@Override
protected void onNewIntent(Intent intent) {
    setIntent(intent);
    handleIntent(intent);
}

/**
 * Handling intent data
 */
private void handleIntent(Intent intent) {
    if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
        String query = intent.getStringExtra(SearchManager.QUERY);

        doMySearch(query);
        txtQuery.setText("Search Query: " + query);
    }
}

private void doMySearch(String query) {
    // TODO Auto-generated method stub
       ArrayAdapter<String> adapter =new ArrayAdapter<String>(this, R.layout.subject_list_layout, R.id.subject_course_title_row);
    return adapter;

}
}

Searchable.xml

     <?xml version="1.0" encoding="utf-8"?>
    <searchable xmlns:android="http://schemas.android.com/apk/res/android"
     android:hint="@string/search_hint"
     android:label="@string/app_name" />

Манифест.xml

        <!-- Sample Search -->
    <activity
        android:name="com.randomlyroaming.com.loaopencourseware.courses.BSIT"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="stateHidden" >
        <meta-data
            android:name="android.app.default_searchable"
            android:value=".SearchResultsActivity" />
    </activity>

    <!-- Search results activity -->
    <activity
        android:name=".SearchResultsActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>

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

Пожалуйста, помогите... Он уже перенаправляет на "txtQuery.setText("Поисковый запрос: " + query);" но никаких результатов... Нужно ли мне что-то поставить метод "doMySearch(query);" какой код я могу вставить туда, чтобы он работал?..

Спасибо, и Ваша помощь очень ценится ...


person user3438885    schedule 18.04.2014    source источник
comment
doMySearch() не содержит кода. Ничего не случится. Показывает ли TextView то, что вы ввели в поле поиска? Кроме того, что делает setIntent()? можешь показать этот метод   -  person Luis Lavieri    schedule 19.04.2014
comment
да, он показывает, что я набираю в поле поиска, моя проблема в том, что я не знаю, какой код я должен ввести в doMysearch, потому что я действительно не могу найти никакого учебника по этому поводу, у меня есть свой пользовательский список и адаптер, и я не знаю, как закодируйте его там .. Извините за то, что я новичок, сэр луис   -  person user3438885    schedule 19.04.2014
comment
Не могли бы вы быть немного более конкретным, что вы хотите? Что в адаптере? У вас есть массив, заполненный этим ListView? Вы хотите изменить адаптер во время поиска слова?   -  person Luis Lavieri    schedule 19.04.2014
comment
Я думаю, что это это то, что вы ищете. Вот еще одно руководство.   -  person Luis Lavieri    schedule 19.04.2014
comment
Привет, сэр Луис, у меня есть массив, который уже заполнен из списка. и что я хочу, так это то, что когда я ищу определенное слово, оно должно заполнять то, что похоже на слово, которое вы вводите в строке поиска... например. Я смотрю на список прямо сейчас с 50 названиями школьных предметов, затем я нажимаю лупу, чтобы перейти к поиску названий школьных предметов, когда я нажимаю ввод, я должен получить похожие имена, которые я набрал в порядке списка... Извините, я надеюсь, что я имею смысл...   -  person user3438885    schedule 19.04.2014
comment
Я думаю, вы пытаетесь фильтровать эти слова. Взгляните на мой ответ. Я предоставил хороший учебник для этого. Удачи в вашем проекте!   -  person Luis Lavieri    schedule 19.04.2014


Ответы (1)


но никаких результатов... Нужно ли мне что-то поставить метод "doMySearch(query);

Да! он не должен ничего показывать, потому что вы просто печатаете запрос в TextView.

Если вы хотите получить доступ к базе данных SQLite, изменить адаптер ListView или сделать что-то еще, вам придется реализовать это в этом методе.

Возвращаясь к тому, что вы хотите, я думаю, вы хотите отфильтровать слова в ListView с помощью запроса, я прав? В любом случае, здесь у вас есть хороший учебник для этого. Кроме того, этот пост может помочь и вам.

person Luis Lavieri    schedule 18.04.2014