Widżet paska wyszukiwania nie rozpoczyna aktywności z możliwością wyszukiwania

Próbuję zaimplementować wyszukiwanie w mojej aplikacji na Androida za pomocą widgetu paska wyszukiwania na pasku akcji.

śledzę

http://developer.android.com/guide/topics/search/search-dialog.html http://developer.android.com/guide/topics/ui/actionbar.html#ActionView

samouczki, aby to zrobić.

Mam dwie czynności związane z poszukiwaniem. Aktywność SearchBar ma pasek akcji, a AcceptSearch jest moją funkcją do przeszukiwania. Mimo że zadeklarowałem, które działanie było działaniem, które można przeszukiwać, zapytanie nie jest wysyłane do AcceptSearch i działanie nie jest uruchamiane.

Skonfigurowałem pasek wyszukiwania tak, aby wskazówka paska wyszukiwania pojawiła się, gdy widżet jest pusty, ale podpowiedź nigdy się nie pojawia. Oto mój kod.

SearchBar

public class SearchBar extends Activity 
{

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    setContentView(R.layout.search_bar);
}

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    //Inflate the options menu from XML
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, 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()));
    searchView.setIconifiedByDefault(false);        
    return true;        
}

AcceptSearch

public class AcceptSearch extends ListActivity
{
@Override
protected void onCreate(Bundle savedInstanceState) 
{       
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash_screen);

    //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);  

        //Start the search
        doMySearch();
    }
}

Searchable.xml

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

menu_menu

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >    
<item
    android:title="Help"
    android:id="@+id/menu_help"
    android:showAsAction="always"
/>
<item
    android:title="Categories"
    android:id="@+id/menu_cats"
    android:showAsAction="always"
/>
<item 
    android:id="@+id/menu_search"
    android:title="Search with Searchlet"
    android:icon="@drawable/ic_action_search"
    android:showAsAction="ifRoom|collapseActionView"
    android:actionViewClass="android.widget.SearchView"/>
</menu>

Oczywisty

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.searchlet"
    android:versionCode="1"
    android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="15" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name=".SplashScreenActivity"
        android:label="@string/title_activity_splash_screen"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".AcceptSearch">
        <intent-filter>
            <action android:name="android.intent.action.SEARCH" />
        </intent-filter>
        <meta-data android:name="android.app.searchable"
            android:resource="@xml/searchable"/>
    </activity>

    <activity android:name=".SearchBar"
              android:label="@string/app_name">                  
        <intent-filter>
            <action android:name="com.example.searchlet.CLEARSCREEN" />
            <category android:name="android.intent.category.DEFAULT" />

        </intent-filter>
    </activity>

</application>

</manifest>

Wierzę, że to wszystkie potrzebne informacje, aby odtworzyć sytuację.

Z góry dziękuję. Doceniam.

questionAnswers(7)

yourAnswerToTheQuestion