studio example desplegable contextual context bar java android-menu

java - example - menu overflow android studio



Añadir un menú a una actividad vacía. (4)

He creado una aplicación de Android en Android Studio y me gustaría crear un menú de opciones en ella. Lo creé como una actividad vacía y ahora me doy cuenta de que hubiera sido mejor crear una actividad en blanco para obtener el menú de opciones. ¿Hay alguna forma de crear el menú de opciones en una actividad vacía? Si alguien pudiera indicarme un tutorial que sería genial, este es mi código hasta ahora para mi menú.

menu_menu

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context="saveourcar.soc.MainActivity"> <item android:id="@+id/action_Menu" android:orderInCategory="100" android:title="Menu" app:showAsAction="never" > <menu> <item android:id="@+id/instructions" android:title="Instructions" android:icon="@drawable/bg"/> <item android:id="@+id/hotels" android:title="Hotels" android:icon="@drawable/mechanic"/> </menu> </item> </menu>

Actividad principal

public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_Menu) { return true; } return super.onOptionsItemSelected(item); }


Con el nuevo Director de diseño de materiales, debe setSupportActionBar(toolbar) dentro de su actividad para poder mostrar el menú.

class HomeActivity:BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_home) setSupportActionBar(toolbar) } override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.menu_new,menu) return true } }


Necesitas inflar tu menú. Estos tutoriales muestran cómo usar los menús. Entonces algo como esto, y elige un nombre mejor que menu_menu:

public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_menu, menu); return true; }


cuando realice el diseño de un menú, debe definirlo para la Actividad en la que desea ubicarlo. Puede hacerlo de la siguiente manera:

@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater findMenuItems = getMenuInflater(); findMenuItems.inflate(R.menu.main_menu, menu); return super.onCreateOptionsMenu(menu); }

main_menu es el nombre del diseño de su menú, y findMenuItems es un nombre opcional.

Y para poder hacer clic en los elementos de su menú para un menú Acerca de y salir de la aplicación, necesitará esto:

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.aboutMenuItem: Intent aboutIntent = new Intent(MainActivity.this, AboutActivity.class); startActivity(aboutIntent); break; case R.id.exitMenuItem: finish(); break; } return super.onOptionsItemSelected(item); }


public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater=getMenuInflater(); inflater.inflate(R.menu.menu,menu); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId()==R.id.action_Menu){ Toast.makeText(this, "Action Item", Toast.LENGTH_SHORT).show(); } if (item.getItemId()==R.id.instructions){ Toast.makeText(this, "Hnstructions Item", Toast.LENGTH_SHORT).show(); } if (item.getItemId()==R.id.hotels){ Toast.makeText(this, "Hotels Item", Toast.LENGTH_SHORT).show(); } return super.onOptionsItemSelected(item); } }