2012-05-02 2 views
1

ActionBarSherlockから検索をリクエストしようとしています。ActionBarSherlockが検索をリクエストしています

私のクラスはSherlockListActivityを拡張します。

これはI`mは、アクションバーにメニューボタンを追加する方法を示します。

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     menu.add("Save") 
      .setIcon(R.drawable.ic_action_search) 
      .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | 
       MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
     return true; 
    } 

問題は、私はidで、それを起動することができませんということです。

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch(item.getItemId()) { 
      case ?????: { 
       onSearchRequested(); 
       return true; 
      } 
     } 
     return true; 
    } 

人々は通常、この問題を解決する方法?

ありがとうございました。

答えて

4

XMLメニューファイルからメニューを展開した場合は、onOptionsItemSelectedメソッドで使用できるIDを設定します。私ならば、これは、compillerによって発見することができない - :

XML

<menu xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:id="@+id/menu_search" 
    android:icon="@drawable/ic_menu_search" 
    android:showAsAction="ifRoom" 
    android:actionViewClass="android.widget.SearchView" android:title="@string/search"/> 
</menu> 

断片

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 

     case R.id.menu_search: 
      onSearchRequested(); 

      return true; 

     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 
+0

場合R.id.menu_searchを使用することができます。このようなこのようにする... – Stas

0

また、あなたが

@Override 
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) { 

    menu.add(0, 1, 1, "Refresh").setIcon(R.drawable.ic_refresh).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
    menu.add(0, 2, 2, "Search").setIcon(R.drawable.ic_search).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 

    return super.onCreateOptionsMenu(menu); 
} 


@Override 
    public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) { 
     switch (item.getItemId()){ 
      case 1: 
       ... 
       break; 
      case 2: 
       ... 
       break; 
     } 
     return true; 
    } 
関連する問題