Не удается заставить работать поиск в панели действий

Я новичок в разработке Java и Android; и я работаю над приложением, в котором мне нужна панель действий с SearchView. Я посмотрел на примеры Google, но я не могу заставить его работать. Должно быть, я делаю что-то не так, и я собираюсь отказаться от разработки приложения -:D Я искал, но не нашел ничего полезного. Может быть, вы, ребята, можете мне помочь:)

Проблема:У меня окно поиска открывается как надо, но после этого вообще ничего не происходит, я заметил, что мой searchManager.getSearchableInfo (getComponentName())возвращает ноль. Кроме того, моя подсказка, которую я дал, не отображается в моем окне поиска, что наводит меня на мысль, что, возможно, приложение не может найти мой searchable.xml? Хватит болтать:)

MainActivity.java

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);

        // Get the SearchView and set the searchable configuration
        SearchManager searchManager =
            (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        SearchView searchView =
            (SearchView) menu.findItem(R.id.menu_search).getActionView();
        searchView.setSearchableInfo(
            searchManager.getSearchableInfo(getComponentName()));

        return true;
    }
}

searchable.xml




Манифест Android



    

    

        
            
                
            
        

        
            
                
                
                       
        

                  

    


SearchableActivity.java

package com.example.searchapp;

import android.app.ListActivity;
import android.app.SearchManager;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class SearchableActivity extends ListActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.search);

        // Get the intent, verify the action and get the query
        Intent intent = getIntent();
        if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
          String query = intent.getStringExtra(SearchManager.QUERY);
          doMySearch(query);
        }
    }

    private void doMySearch(String query) {
        Log.d("Event",query);
    }
}

А вот ссылка на упомянутый проект, буду бесконечно благодарен, если кто-то мне в этом поможет!

Исходный код

66
задан Ilona 3 July 2018 в 11:55
поделиться