In questo articolo vedremo come è possibile nascondere una o più voci all'interno dell'OptionMenu.
ESEMPIO 1:
In questo esempio vedremo come nascondere/visualizzare voci all'interno dell'OptionMenu quando si clicca su un pulsante.
per prima cosa occorre definire una variabile di tipo Menu in modo da poter utilizzare il menu nel resto del codice
poi all'interno della funzione onCreateOptionsMenu occorre aggiungere queesta riga di codice in modo da associare il Menu alla variabile appena creata
per nascondere una voce occorre inserire questa riga di codice
per visualizzare una voce occorre inserire questa riga di codice
Ecco come si presenta il file menu.xml
Ecco come si presenta il file MainActivity.kt
ESEMPIo 2:
In questo esempio vedremo come nascondere voci all'interno dell'OptionMenu quando si avvia l'app.
Il principio di funzionamento è simile a quello visto in precedenza in quanto la riga di codice da inserire per nascondere una voce all'interno dell'OptionMenu è la seguente
la differenza sta nell'inserire la riga di codice all'interno della funzione onCreateOptionsMenu in modo che quando viene creato l'OptionMenu verranno nascoste le voci che sono state definite con quella riga di codice.
Il file menu.xml è identico a quello dell'esempio 1
Ecco come si presenta il file MainActivity.kt
ESEMPIO 1:
In questo esempio vedremo come nascondere/visualizzare voci all'interno dell'OptionMenu quando si clicca su un pulsante.
per prima cosa occorre definire una variabile di tipo Menu in modo da poter utilizzare il menu nel resto del codice
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//variabile di tipo Menu per poter modificare il contenuto dell'OptionMenu tramite codice | |
private var mymenu: Menu? = null |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//associazione del menu alla variabile mymenu | |
this.mymenu=menu |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//mymenu è la variabile associata al Menu, mentre action_three è l'id dell'elemento all'interno del menu da nascondere | |
mymenu!!.findItem(R.id.action_three).isVisible = false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//mymenu è la variabile associata al Menu, mentre action_three è l'id dell'elemento all'interno del menu da visualizzare | |
mymenu!!.findItem(R.id.action_three).isVisible = true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<menu | |
xmlns:android="http://schemas.android.com/apk/res/android"> | |
<item | |
android:id="@+id/action_one" | |
android:title="Elemento 1"/> | |
<item | |
android:id="@+id/action_two" | |
android:title="Elemento 2"/> | |
<item | |
android:id="@+id/action_three" | |
android:title="Elemento 3"/> | |
<item | |
android:id="@+id/action_four" | |
android:title="Elemento 4"/> | |
</menu> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.dm.tutorialactionbar4 | |
import androidx.appcompat.app.AppCompatActivity | |
import android.os.Bundle | |
import android.view.Menu //Importazione della Classe: Menu | |
import android.view.MenuItem //Importazione della Classe: MenuItem | |
import android.widget.Toast | |
import kotlinx.android.synthetic.main.activity_main.* | |
class MainActivity : AppCompatActivity() { | |
private var bn: Int? = 0 | |
//variabile di tipo Menu per poter modificare il contenuto dell'OptionMenu tramite codice | |
private var mymenu: Menu? = null | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
setContentView(R.layout.activity_main) | |
} | |
override fun onResume() { | |
super.onResume() | |
button.setOnClickListener { | |
if(bn == 0) | |
{ | |
//con queste righe di codice si nasconde la voce di menu specificata | |
//mymenu è la variabile associata al Menu, mentre action_three è l'id dell'elemento all'interno del menu da nascondere | |
mymenu!!.findItem(R.id.action_three).isVisible = false | |
mymenu!!.findItem(R.id.action_four).isVisible = false | |
bn = 1 | |
button.text = "Visualizza elementi" | |
} | |
else | |
{ | |
//con queste righe di codice si visualizza la voce di menu specificata | |
//mymenu è la variabile associata al Menu, mentre action_three è l'id dell'elemento all'interno del menu da visualizzare | |
mymenu!!.findItem(R.id.action_three).isVisible = true | |
mymenu!!.findItem(R.id.action_four).isVisible = true | |
bn = 0 | |
button.text = "Nascondi elementi" | |
} | |
} | |
} | |
override fun onCreateOptionsMenu(menu: Menu): Boolean { | |
//Questo permette di aggiunge elementi alla barra delle azioni se è presente. | |
menuInflater.inflate(R.menu.menu, menu) | |
//associazione del menu alla variabile mymenu | |
this.mymenu=menu | |
return true | |
} | |
override fun onOptionsItemSelected(item: MenuItem): Boolean { | |
// Gestisci i clic degli elementi della barra delle azioni qui. | |
when (item.itemId) { | |
R.id.action_one -> { | |
Toast.makeText(this, "Elemento 1 premuto", Toast.LENGTH_LONG).show() | |
} | |
R.id.action_two -> { | |
Toast.makeText(this, "Elemento 2 premuto", Toast.LENGTH_LONG).show() | |
} | |
R.id.action_three -> { | |
Toast.makeText(this, "Elemento 3 premuto", Toast.LENGTH_LONG).show() | |
} | |
R.id.action_four -> { | |
Toast.makeText(this, "Elemento 4 premuto", Toast.LENGTH_LONG).show() | |
} | |
else -> super.onOptionsItemSelected(item) | |
} | |
return true | |
} | |
} |
Download Project | ![]() |
Download file APK | ![]() |
ESEMPIo 2:
In questo esempio vedremo come nascondere voci all'interno dell'OptionMenu quando si avvia l'app.
Il principio di funzionamento è simile a quello visto in precedenza in quanto la riga di codice da inserire per nascondere una voce all'interno dell'OptionMenu è la seguente
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//mymenu è la variabile associata al Menu, mentre action_three è l'id dell'elemento all'interno del menu da nascondere | |
mymenu!!.findItem(R.id.action_three).isVisible = false |
Il file menu.xml è identico a quello dell'esempio 1
Ecco come si presenta il file MainActivity.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.dm.tutorialactionbar5 | |
import androidx.appcompat.app.AppCompatActivity | |
import android.os.Bundle | |
import android.view.Menu //Importazione della Classe: Menu | |
import android.view.MenuItem //Importazione della Classe: MenuItem | |
import android.widget.Toast | |
class MainActivity : AppCompatActivity() { | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
setContentView(R.layout.activity_main) | |
} | |
override fun onCreateOptionsMenu(menu: Menu): Boolean { | |
//Questo permette di aggiunge elementi alla barra delle azioni se è presente. | |
menuInflater.inflate(R.menu.menu, menu) | |
/*menu è la variabile della funzione onCreateOptionsMenu associata al Menu, | |
mentre action_three è l'id dell'elemento all'interno del menu da nascondere*/ | |
menu.findItem(R.id.action_three).isVisible = false | |
menu.findItem(R.id.action_four).isVisible = false | |
return true | |
} | |
override fun onOptionsItemSelected(item: MenuItem): Boolean { | |
// Gestisci i clic degli elementi della barra delle azioni qui. | |
when (item.itemId) { | |
R.id.action_one -> { | |
Toast.makeText(this, "Elemento 1 premuto", Toast.LENGTH_LONG).show() | |
} | |
R.id.action_two -> { | |
Toast.makeText(this, "Elemento 2 premuto", Toast.LENGTH_LONG).show() | |
} | |
R.id.action_three -> { | |
Toast.makeText(this, "Elemento 3 premuto", Toast.LENGTH_LONG).show() | |
} | |
R.id.action_four -> { | |
Toast.makeText(this, "Elemento 4 premuto", Toast.LENGTH_LONG).show() | |
} | |
else -> super.onOptionsItemSelected(item) | |
} | |
return true | |
} | |
} |
Download Project | ![]() |
Download file APK | ![]() |
- Ottieni link
- X
- Altre app
Etichette
ActionBar Android Studio
Etichette:
ActionBar
Android Studio
Ubicazione:
Milano MI, Italia
- Ottieni link
- X
- Altre app
Commenti
Posta un commento