2014-09-28 1 views
2

Я занимаюсь обучением в андроиде, а в части «Добавление кнопок действий» openSearch() и openSettings() не определены. Поэтому я сделал их частными пустотами в одном классе. В коммутаторе, однако, openSearch(); по-видимому, недостижима. Когда я удалю этот случай, метод в следующем случае недоступен. Вот мой код.Android tutorial switch 1-й случайный метод недоступен

return super.onOptionsItemSelected(item); 
    // Handle presses on the action bar items 
    switch (item.getItemId()) { 
     case R.id.action_search: 
      openSearch(); 
      return true; 
     case R.id.action_settings: 
      openSettings(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
private void openSettings() { 
    Toast.makeText(this, "Search button pressed", Toast.LENGTH_SHORT).show(); 
} 
private void openSearch() { 
    Toast.makeText(this, "Search button pressed", Toast.LENGTH_SHORT).show(); 
} 
+0

'возвращает значение;' заканчивается метод поток управления, так что код после него (в вашем случае ' switch') не будет вызываться (недоступен) – Pshemo

+0

Это одно из преимуществ Android Studio, которое вы кричите о недостижимом коде. – rekire

+1

Как и в стороне: вы должны привыкнуть использовать идентификаторы ресурсов как значения case в инструкции 'switch'. Он не будет работать в библиотечных проектах, где значения идентификатора ресурса не являются «final». См. [Здесь] (http://tools.android.com/tips/non-constant-fields) для получения дополнительной информации об этом. –

ответ

3

Вы должны избавиться от return super.onOptionsItemSelected(item); в верхней части методы, или коммутатор никогда не будет достижим