Intereting Posts
Push-уведомления с использованием сервера Rails Получить входной текст с пользовательским видом без edittext android Может ли сборщик мусора отменить выделение одного экземпляра? (И почему и как его избежать) Какую мобильную операционную систему я должен кодировать? Как зашифровать ресурсы HTML + JS в мобильном приложении Android Phonegap? PhoneGap / Кордова Разработка Android Проблемы с подключением Bluetooth с помощью IntentService Может ли bindService () быть заблокирован? Невозможно работать с Android в корпоративной сети с защитой WPA / WPA2. Всегда отключается? Не удается вызвать void android.view.View.setElevation (float) на нулевом объекте в лапизме / SearchView Sugar ORM требует, чтобы записи сохранялись каждый раз во время модульного тестирования? «To Do» перед публикацией приложения Android на рынок Как обращаться с savedInstanceState при использовании ViewPager? Вкладки Android Tablayout с уведомлением, например whatsApp Отказ коренного кода на libwebviewchromium.so

Как выделить два щелчка элемента меню в 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.