Android: Další součásti GUI
Z MiS
				
				
				
				
																
				
				
								
				
| Obsah | 
Menu
- developer.android.com > Guide > Topics > Ui > Menus <http://developer.android.com/guide/topics/ui/menus.html>
-  res/menu/menu.xml
- XML popis struktury menu.
- <menu>
-   <item>
- android:id
- android:id="@+id/otevrit"
 
- android:title
- popiska
 
- Standardně nepárový tag.
- Obsahem elementu může být další element <menu> (podmenu).
- android:icon
- @drawable/obrazek
 
- android:alphabeticShortcut="x"
 
- android:id
 
 
- Načtení z XML
-  public boolean onCreateOptionsMenu(Menu menu)- Definujeme v aktivitě, která má mít menu.
 
- MenuInflater
- Třída, která vytváří propojení s XML souborem.
 
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    return true;
}
- Dynamicky vytvořené z kódu
- public boolean onCreateOptionsMenu(Menu menu)
- menu.add(int idSkupinyVoleb, int idVolby, int poradiVolbyVMenu, String textVolby)
Příklad:
public boolean onCreateOptionsMenu(Menu menu) {
   menu.add(1,1,0, "otevri");
   menu.add(1,2,1, "zavri");
}
-  Obsluha
- public boolean onOptionsItemSelected(MenuItem item)
- Spustí se při kliknutí na menu.
 
- item.getItemId()
- switch (item.getItemId()) {
- case R.id.otevri:
- ...
- return true;
- }
 
 
- public boolean onOptionsItemSelected(MenuItem item)
-   registerForContextMenu(view)
- Registrace komponenty (view) pro kontext. menu.
- Příklad (kód aktivity):
- public void onCreate(Bundle savedInstanceState) {
-  o
- super.onCreate(savedInstanceState);
 
- setContentView(R.layout.main);
- Button b = (Button) R.findViewById(R.id.tlacitko);
- registerForContextMenu(b);
 
 
 
 
-   onCreateContextMenu()
- public boolean onCreateContextMenu(ContextMenu menu, View v, contextMenuInfo menuInfo) {
- o
- super.onCreateContextMenu(menu, v, menuInfo);
- if (v.getId()==R.id.tlacitko) {
-  o
- getMenuInflater().inflate(R.menu.kontextmenu, menu);
- }
 
- }
 
 
 
-   onContextItemSelected()
- public boolean onContextItemSelected(MenuItem item) {
- o
- Button b = (Button) findViewById(R.id.tlacitko);
- switch (item.getItemId()) {
-  o
- case R.id.modra:
- b.setBackgroundColor(Color.BLUE);
- return true;
- default:
- return super.onContextItemSelected(item);
- }
 
- }
 
 
 
-   Hlavní menu
- Jednou při vytvoření aktivity.
 
-   Kontextové menu
- Při každém vyvolání (podržením prstu na prvku).
 
Vyskakovací okna
-  Toast
- Třída
- Bublina, která se objeví a zase zmizí.
-   Metody
- setText(...)
- setDuration(konstantaDobyTrvani)
- makeText(Activity aktivita, String text, konstantaDobyTrvani)
- Vytvoří instanci.
-  Konstanty: <#ID_1440998896>
- Toast.LENGTH_LONG
- Toast.LENGTH_SHORT
 
 
- show()
- Zobrazí bublinu!
 
- Konstanty doby trvání:
- Toast.LENGTH_LONG
- Toast.LENGTH_SHORT
 
 
 
 
-  AlertDialog
-   kritické události nebo potvrzení
- AlertDialog dialog = new AlertDialog(Neutral, "OK");
- Dialog.setText(text);
- Dialog.setTitle("Upozornění");
- Dialog.show();
 
 
 
-   kritické události nebo potvrzení
-  Builder
- umožňuje nastavit vlastnosti dialogu.
 
Přepínání obrazovek
=== Pojem aktivita
- Aktivita... jedna obrazovka aplikace.
-  Je realizována třídou, která je potomkem třídy android.app.Activity.
Životní cyklus aktivity
- Metody
setContentView()
- Náhled obsahu.
onCreate()
-  Volá se:
- Při spuštění aktivity.
- Pokud bylo málo paměti a komponenta ve stavu onPause() nebo onStop() byla uvolněna.
 
onStart()
-  Následuje po:
-  onCreate()
-  onRestart()
 
-  
onResume()
- Když se uživatel vrátí k obrazovce (ale byla předtím stále viditelná):
-  Následuje po: 
- onStart()
- onPause()
 
onPause()
- Uživatel se přepne do jiné aktivity
onStop()
- Aktivita již nebude viditelná.
onRestart()
- Aktivita byla znovu zviditelněna (předtím bylo okno skryto).
-  Následuje tedy po:
- onStop()
 
onDestroy()
- Ukončení aktivity.
- 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
- Android: Tvorba GUI... principy, propojování prvků, identifikace prvků, layout.
- Android: Jednoduché prvky GUI
