Android: Další součásti GUI

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Osamostatnění stránky)
 
(Upraven vzhled dokumentu - kompletně přepracována část okolo hlavního menu.)
 
Řádka 16: Řádka 16:
 
***** @drawable/obrazek
 
***** @drawable/obrazek
 
****android:alphabeticShortcut="x"
 
****android:alphabeticShortcut="x"
**  Příklad:
+
 
****Zpět a Znovu
+
 
* Hlavní menu
+
=== Hlavní menu ===
**  Z XML:
+
; Načtení z XML
****public boolean onCreateOptionsMenu(Menu menu)
+
* <code>public boolean onCreateOptionsMenu(Menu menu)</code>
***** Definujeme v aktivitě, která má mít menu.
+
** Definujeme v aktivitě, která má mít menu.
****MenuInflater
+
 
***** třída, která vytváří propojení s XML souborem.
+
*MenuInflater
***** public boolean onCreateOptionsMenu(Menu menu) {
+
** Třída, která vytváří propojení s XML souborem.
***** o
+
 
******  MenuInflater inflater = getMenuInflater();
+
<div class="Priklad">
******  inflater.inflate(R.menu.menu, menu);
+
public boolean onCreateOptionsMenu(Menu menu) {
******  return true;
+
    MenuInflater inflater = getMenuInflater();
****** }
+
    inflater.inflate(R.menu.menu, menu);
**  Dynamicky doplněné
+
    return true;
****public boolean onCreateOptionsMenu(Menu menu)
+
  }
****menu.add(int idSkupinyVoleb, int idVolby, int poradiVolbyVMenu, String textVolby)
+
</div>
****Příklad:
+
 
***** menu.add(1,1,0, "otevri");
+
; Dynamicky vytvořené z&nbsp;kódu:
***** menu.add(1,2,1, "zavri");
+
*public boolean onCreateOptionsMenu(Menu menu)
*Obsluha
+
*menu.add(int idSkupinyVoleb, int idVolby, int poradiVolbyVMenu, String textVolby)
****public boolean onOptionsItemSelected(MenuItem item)
+
 
***** Spustí se při kliknutí na menu.
+
<div class="Priklad">
****item.getItemId()
+
Příklad:
***** switch (item.getItemId()) {
+
public boolean onCreateOptionsMenu(Menu menu) {
***** case R.id.otevri:
+
    menu.add(1,1,0, "otevri");
***** ...
+
    menu.add(1,2,1, "zavri");
***** return true;
+
}
***** }
+
</div>
* Kontextové menu
+
 
**  registerForContextMenu(view)
+
* Obsluha
****Registrace komponenty (view) pro kontext. menu.
+
**public boolean onOptionsItemSelected(MenuItem item)
****Příklad (kód aktivity):
+
*** Spustí se při kliknutí na menu.
***** public void onCreate(Bundle savedInstanceState) {
+
**item.getItemId()
***** o
+
*** switch (item.getItemId()) {
 +
*** case R.id.otevri:
 +
*** ...
 +
*** return true;
 +
*** }
 +
 
 +
 
 +
=== Kontextové menu ===
 +
*  registerForContextMenu(view)
 +
***Registrace komponenty (view) pro kontext. menu.
 +
***Příklad (kód aktivity):
 +
**** public void onCreate(Bundle savedInstanceState) {
 +
**** o
 
******  super.onCreate(savedInstanceState);
 
******  super.onCreate(savedInstanceState);
******  setContentView(R.layout.main);
+
*****  setContentView(R.layout.main);
******  Button b = (Button) R.findViewById(R.id.tlacitko);
+
*****  Button b = (Button) R.findViewById(R.id.tlacitko);
******  registerForContextMenu(b);
+
*****  registerForContextMenu(b);
**  onCreateContextMenu()
+
*  onCreateContextMenu()
****public boolean onCreateContextMenu(ContextMenu menu, View v, contextMenuInfo menuInfo) {
+
***public boolean onCreateContextMenu(ContextMenu menu, View v, contextMenuInfo menuInfo) {
****o
+
***o
***** super.onCreateContextMenu(menu, v, menuInfo);
+
**** super.onCreateContextMenu(menu, v, menuInfo);
***** if (v.getId()==R.id.tlacitko) {
+
**** if (v.getId()==R.id.tlacitko) {
***** o
+
**** o
******  getMenuInflater().inflate(R.menu.kontextmenu, menu);
+
*****  getMenuInflater().inflate(R.menu.kontextmenu, menu);
******  }
+
*****  }
***** }
+
**** }
**  onContextItemSelected()
+
*  onContextItemSelected()
****public boolean onContextItemSelected(MenuItem item) {
+
***public boolean onContextItemSelected(MenuItem item) {
****o
+
***o
***** Button b = (Button) findViewById(R.id.tlacitko);
+
**** Button b = (Button) findViewById(R.id.tlacitko);
***** switch (item.getItemId()) {
+
**** switch (item.getItemId()) {
***** o
+
**** o
******  case R.id.modra:  
+
*****  case R.id.modra:  
******  b.setBackgroundColor(Color.BLUE);
+
*****  b.setBackgroundColor(Color.BLUE);
******  return true;
+
*****  return true;
******  default:
+
*****  default:
******  return super.onContextItemSelected(item);
+
*****  return super.onContextItemSelected(item);
******  }
+
*****  }
***** }
+
**** }
* Vytvoření
+
 
*hlavní menu
+
=== Vytvoření menu ===
****Jednou při vytvoření aktivity.
+
Hlavní menu
*kontextové menu
+
** Jednou při vytvoření aktivity.
****Při každém vyvolání (podržením prstu na prvku).
+
Kontextové menu
 +
** Při každém vyvolání (podržením prstu na prvku).
  
  

Aktuální verze z 19. 7. 2020, 10:20


Obsah

Menu


Hlavní menu

Načtení z XML
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}
Dynamicky vytvořené z kódu

Příklad:

public boolean onCreateOptionsMenu(Menu menu) {
   menu.add(1,1,0, "otevri");
   menu.add(1,2,1, "zavri");
}


Kontextové menu

Vytvoření menu


Vyskakovací okna


Přepínání obrazovek

=== Pojem aktivita

Životní cyklus aktivity

Metody
setContentView()
onCreate()
onStart()
onResume()
onPause()
onStop()
onRestart()
onDestroy()
Spuštění aktivity
Intent i = new Intent(this, novaAktivita.class);
startActivity(i);
Přidání aktivity do manifestu
<activity android:name="novaAktivita" />


Související stránky

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje