Android – разница между res / menu и res / layout?

Я довольно новичок в развитии Android, о чем вы, наверное, можете рассказать по моему вопросу. Я обнаружил, что у меня есть папка res / menu и папка res / layout. Оба они содержат XML-файлы для каждого вида деятельности. Но я никогда не использовал папку res / menu. Я делаю все свое стилирование в res / layout. Что мне делать в xml-файлах в res / menu?

    Он предназначен для использования с menuInflater для создания меню в методе onCreateOptionsMenu вашей деятельности.

    @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } 

    В этом примере main.xml может выглядеть так:

     <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_item_1" android:title="@string/menu_title2"> </item> <item android:id="@+id/menu_item_2" android:title="@string/menu_title2"> </item> </menu> 

    И действие, которое нужно предпринять при нажатии одного из пунктов меню, может быть реализовано путем переопределения метода onOptionsItemSelected, возможно, так:

     @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case (R.id.menu_item_1): this.startActivity(new Intent(this, MyFirstActivity.class)); return true; case (R.id.menu_item_2): this.startActivity(new Intent(this, MySecondActivity.class)); return true; default: return super.onOptionsItemSelected(item); } } 

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

    Простой и хороший тату для этого

    Меню в Android – это то, что вытаскивается в нижней части экрана, когда нажата нижняя часть меню. Это меню создано в классе вашей деятельности в классе onCreateOptionsMenu:

     @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } 

    Как вы можете видеть, в этом случае R.menu.main «раздувается». R.menu.main – это просто файл с именем main.xml под папкой res / menu. Пример XML-файла меню будет выглядеть примерно так:

     <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_item_1" android:title="Menu Item"> </item> </menu> 

    Этот xml-файл создает меню с одним щелчком мыши: Пункт меню

    Файл макета андроида используется для создания макета вашей деятельности. В примере onCreate:

     @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } 

    SetContentView () запрашивает идентификатор файла макета. R.layout.main – это файл, расположенный в res / layout с именем main.xml. Этот код устанавливает компоновку этой активности так, как указано в main.xml.

    Почти все Android-IDE, включая Eclipse, по умолчанию создают как макет, так и папку меню.

    Intereting Posts
    Eclipse Indigo не разрешает @Override для перезаписываемых методов без активности Robolectric выбрасывает ресурсы $ NotFoundException при попытке доступа к ресурсу в исходной папке Android, могу ли я использовать putExtra для передачи нескольких значений Определение того, какое слово щелкнуть в текстовом виде android Нужна помощь / предложения по обработке звука Android Разрешение на запуск приложений для приложений на платформе Android Возможно использование нового API на Android Ошибка при запуске эмулятора Отключить показ окна запуска в IntelliJ Android Google PlacePicker с отображением перекрывающегося текста Как мне компоновать вложенные RecyclerViews, оставаясь при этом исполняемым? Диалоговое окно оповещений внутри метода прослушивания Onclick Приложение для мониторинга других приложений на Android Получите разрешение publish_action после получения прав на чтение от Facebook Как исправить Unmarshalling неизвестный код типа XXX при смещении YYY в Android?