Tworząc nowy projekt dostajemy prosty program typu HelloWorld. Zobaczmy na początek jego kod.
package com.example.lukasz.helloworld;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Omówię teraz jego poszczególne części.
Pierwszą linijką zawsze jest nazwa naszej paczki programu.
package com.example.lukasz.helloworld;
Wszystkie pliki z danego projektu należą do jednej paczki. Taki system pozwala je grupować pod względem projektu. Nazwę paczki podaje się zawsze na początku tworzenia nowego projektu.
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
Następnym krokiem jest zaimportowanie potrzebnych elementów naszej "biblioteki standardowej". Importować trzeba wszystkiego czego będziemy chcieli używać. Poprzez importowanie poszczególnych klas otrzymujemy dostęp do ich metod, w tym możliwości ich ewentualnego nadpisania poprzez przeładowanie. To co najważniejsze to importujemy Activity, Bundle dla przechowywania informacji dla aplikacji oraz Menu i MenuItem dla obsługi menu programu.
public class MainActivity extends Activity
Teraz możemy już otworzyć klasę naszej aktywności nazwanej zgodnie z tym jak nazywała się aktywność podana na etapie tworzenia projektu. Nasza aktywność dziedziczy po Activity, więc dostajemy możliwość przeładowania jej metod, w tym onCreate, onCreateOptionsMenu oraz onOptionsItemSelected.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Pierwsze co nam proponuje Android Studio czy Eclipse i co robimy to piszemy własną metodę onCreate. Metoda ta pochodzi z Activity i obsługuje wszystko to co powinno być zrobione w trakcie uruchamiania aplikacji. Przekazywany parametr Bundle savedInstanceState przechowuje tutaj poprzedni stan aplikacji.
super.onCreate(savedInstanceState);
Wewnątrz wywoływana jest oryginalna metoda onCreate rodzica co fizycznie uruchomi aplikację.
setContentView(R.layout.activity_main);
Na koniec metoda ta wywołuje setContentView, która ustawia graficzny interfejs użytkownika. Pokrótce tworzy nasz interfejs, do którego mamy odpowiedni kreator, a który opisuje go poprzez plik layoutu activity_main.xml (main.xml w Eclipse). To właśnie owe main w activity_main odnosi się do nazwy pliku activity_main.xml. Przekazana klasa R jest tu generowana automatycznie. R pochodzi tutaj od słowo Resource czyli zasób. Zapewniać ma ona identyfikatory dla plików zasobu.
Dalej mamy już metody tworzenia i zarządzania menu. Pierwsza z nich to onCreateOptionsMenu.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
Metoda onCreateOptionsMenu ma za zadanie utworzyć menu i dodać je do pisanej aplikacji. Samo menu podobnie jak layout generujemy odpowiednim narzędziem wspomagającym, a samo menu zdefiniowane jest w zasobach w R.menu.menu_main w pliku menu_main.xml. Na tym etapie można też dodać własne pozycje menu w kodzie programu o czym napiszę w następnych częściach kursu.
Na końcu mamy jeszcze obsługę menu reagującą na kliknięcie, a zatem kolejne zdarzenie.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
Metoda onOptionsItemSelected pobiera pozycję menu poprzez instrukcję:
int id = item.getItemId();
Następnie rozpoznawana jest pozycja po identyfikatorze:
if (id == R.id.action_settings) {
return true;
}
Dla danego identyfikatora wykonywane jest dane zadanie przewidziane jako reakcja na wybranie pozycji z menu.
Zabrania się kopiowania tego kursu i udostępniania poza portalem HotFix.pl
Niedługo następne części kursu.