Как выделить два щелчка элемента меню в ActionBarSherlock?

Недавно я работал с ActionBarSherlock, и, следуя различным учебникам, я написал этот код для добавления элементов в панель действий

@Override public boolean onCreateOptionsMenu(Menu menu) { menu.add("Refresh") .setIcon(R.drawable.ic_action_refresh) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); menu.add("Search")// Search .setIcon(R.drawable.ic_action_search) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); return true; } 

Однако я не знаю, как отличить два клика.

Хотя я выяснил, что вам нужно переопределить onOptionsItemSelected для обработки кликов, а также, что оператор switch может использоваться для различения кликов, но большинство учебных пособий используют идентификаторы элементов из своих XML-меню. Поскольку я не создаю меню в xml, как я могу отличить клики без идентификаторов.

Solutions Collecting From Web of "Как выделить два щелчка элемента меню в ActionBarSherlock?"

 private static final int REFRESH = 1; private static final int SEARCH = 2; @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, REFRESH, 0, "Refresh") .setIcon(R.drawable.ic_action_refresh) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); menu.add(0, SEARCH, 0, "Search") .setIcon(R.drawable.ic_action_search) .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case REFRESH: // Do refresh return true; case SEARCH: // Do search return true; default: return super.onOptionsItemSelected(item); } } 

Просто проверьте следующее

 http://developer.android.com/guide/topics/ui/actionbar.html 

который содержит

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { <--- here you can get it case android.R.id.home: // app icon in action bar clicked; go home Intent intent = new Intent(this, HomeActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true; default: return super.onOptionsItemSelected(item); } } 

Вы можете сделать ti там Id в onOptionsItemSelected ……………. который также можно установить здесь

http://thedevelopersinfo.wordpress.com/2009/10/29/handling-options-menu-item-selections-in-android/

http://developer.android.com/reference/android/view/Menu.html#add(int , int, int, java.lang.CharSequence)

 use public abstract MenuItem add (int groupId, int itemId, int order, CharSequence title) Since: API Level 1 Add a new item to the menu. This item displays the given title for its label. Parameters groupId The group identifier that this item should be part of. This can be used to define groups of items for batch state changes. Normally use NONE if an item should not be in a group. itemId Unique item ID. Use NONE if you do not need a unique ID. order The order for the item. Use NONE if you do not care about the order. See getOrder(). title The text to display for the item. Returns The newly added menu item.