Invata Sistemul de Operare Android – Partea 8

Bine ati venit pe ItAssistant. Aceasta noua serie de tutoriale isi propune sa va familiarizeze cu Sistemul de Operare Android astfel incat sa puteti sa scrieti singuri aplicatii pentru propriul SmartPhone, si de ce nu, aplicatia sa ajunga in top pe Android Market.

Inainte de a incepe trebuie sa cunoasteti destul de bine limbajul de programare Java si conceptele Programarii Orientata Obiect; puteti sa aruncati o privire peste tutorialele noastre avansate: Invata Java

Android – Meniuri

Meniurile sunt o parte importanta din interfata grafica a unei aplicatii, ele oferind posibilitatea utilizatorului de a accesa rapid actiuni comune (de exemplu in aplicatia pentru email sincronizarea inbox-ului).

Mai jos este prezentat meniul din Browser-ul Android.

Android Meniu

Este recomandat ca meniul sa fie declarat intr-un fisier XML. Aceste trebuie sa se gaseasca in: res/menu/. Mai jos este prezentat un astfel de fisier.

menu.options_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/dashboard_refresh"
          android:title="@string/dashboard_refresh"
          android:icon="@drawable/refresh" />
    <item android:id="@+id/dashboard_settings"
          android:title="@string/dashboard_settings"
          android:icon="@android:drawable/ic_menu_preferences" />
    <item android:id="@+id/dashboard_about"
          android:title="@string/dashboard_about"
          android:icon="@drawable/about" />
    <item android:id="@+id/dashboard_help"
          android:title="@string/dashboard_help"
          android:icon="@drawable/help" />
</menu>

Observatii:

  • fiecare element al meniului este declarat in tag-ul <item>
  • id-ul elementului este declarat in atributul android:id
  • textul este declarat in atributul android:title (este o practica buna ca string-urile sa fie externalizate in fisierul string.xml)
  • fiecare element poate avea si o imagine; aceste imagini pot fi ale sistemului, caz in care vom folosi android:icon=”@android:drawable/nume_imagine” sau incarcate de programator in folderul /res/drawable/, caz in care vor fi referite astfel: android:icon=”@drawable/help” (este de preferat ca imaginile pe care le folosit in aplicatiile voastre sa fie PNG)

Mai jos este prezentat si fisierul string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <string name="hello">Hello World, MenuExampleActivity!</string>
    <string name="app_name">MenuExample</string>
 
        <!-- The menu entry for dashboard -->
    <string name="dashboard_refresh">Sync</string>
    <string name="dashboard_settings">Settings</string>
    <string name="dashboard_about">About</string>
    <string name="dashboard_help">Help</string>
 
</resources>

Incarcarea unui meniu intr-o Activitate se face utilizand functia MenuInflater.inflate() in timpul executiei onCreateOptionsMenu() (acesta functie va trebui suprascrisa).

Exemplu Android Meniu

In continuare este prezentata o Activitate care incarca meniul declarat anterior si afiseaza un mesaj (Toast) in momentul in care user-ul actioneaza un element.

package org.menuexample;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast;
 
public class MenuExampleActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
 
    /*
	 * Create Menu Option
	 * @see android.app.Activity#onCreateOptionsMenu(android.view.Menu)
	 */
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.menu.options_menu, menu);
		return true;
	}
 
	/*
	 * @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
	 */
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
 
		switch (item.getItemId()) {
		case R.id.dashboard_refresh:
			Toast.makeText(this, "Sync", Toast.LENGTH_SHORT).show();
			return true;
		case R.id.dashboard_settings:
			Toast.makeText(this, "Settings", Toast.LENGTH_SHORT).show();
			return true;
		case R.id.dashboard_about:
			Toast.makeText(this, "About", Toast.LENGTH_SHORT).show();
			return true;
		case R.id.dashboard_help:
			Toast.makeText(this, "Help", Toast.LENGTH_SHORT).show();
			return true;
		default:
			return false;
		}
	}
}

Dupa cum observati din exemplu de mai sus, pentru a raspunde la actiunile user-ului va trebui suprascrisa functia onOptionsItemSelected()

Android Meniu

Android Meniu

Related posts:

  1. Invata Sistemul de Operare Android – Partea 4
  2. Invata Sistemul de Operare Android – Partea 2
  3. Invata Sistemul de Operare Android – Partea 7
  4. Invata Sistemul de Operare Android – Partea 6
  5. Invata Sistemul de Operare Android – Partea 5
Tags: , , , , ,

V-a placut acest tutorial? Aveti anumite sugestii pentru urmatoarele tutoriale video? Lasati un comentariu! Feedback-ul vostru este foarte important pentru noi.

Pentru intrebari mai elaborate, cu caracter general, va rugam folositi forumul si in cel mai scurt timp veti primi un raspuns. Astfel ii vom ajuta si pe ceilalti sa invete din eventualele probleme.