0% au considerat acest document util (0 voturi)
18 vizualizări9 pagini

Tutorial 1 Android

Android

Încărcat de

Simi Sim
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
18 vizualizări9 pagini

Tutorial 1 Android

Android

Încărcat de

Simi Sim
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

Consola de mesaje (LogCat)

Afiseaza mesajele transmise din aplicatii:


Sistem
Utilizator

Tipuri de mesaje:
Avertizare (w)
Depanare (d)
Eroare (e)
Informare (i)
Informare detaliata (v)
Clasa [Link]
Metode statice aosicate tipurilor de mesaje:
e();
w();
i();
d();
v();
wtf();
Parametri:
Identificator sursa mesaj (String)
o Numele clasei aplicatiei
o Posibilitate de filtrare

Mesajul care va fi afisat (String)


Metoda statica generala:
Println();
In plus, primul parametru include tipul mesajului: [Link], [Link] etc
Componente de baza ale aplicatiilor Android:

Activity (clasa de baza [Link])


Servicii (clasa de baza Service)
- Rutine care ruleaza in paralel cu firul principal
- Nu prezinta interfata grafica
- Permit derularea unor actiuni in fundal fara a bloca firul principal de executie
sau interactiunea cu aplicatiile

Furnizori de continut (clasa de baza ContentProvider)


- Suport pentru partajarea datelor intre aplicatii
- Datele partajate sunt stocate in diferite surse de date (fisiere, bd etc)
- Pun la dispozitie o modalitate standard pt accesul la date si actualizarea
acestora
- Accesul se realizeaza printr-un URL de forma content://

Receptori de mesaje (clasa de baza BroadcastReceiver)


- Mesaje (clasa de baza Intent)
- Pt activarea componentelor se utilizeaza mesaje asincrone incapsulate in obiecte
de tip Intent
- Invocare componente: deschidere navigator, initiere aplicatie apeluri telefonice,
afisarea hartii la o anumita pozitie geografica etc
- Comunicare intre component
Receptionarea evenimentelor:
-

Aplicatiile pot reactiona la aparitia unor evenimente la nivelul sistemului prin


utilizarea claselor din BroadcastReceiver, Ex: apel telefonic, modificarea
nivelului bateriei etc
Acestea nu prezinta interfata grafica
O aplicatie poate include mai multe component pt receptionarea de evenimente

Structura unui proiect


Fisier de configurare

Resurse

Siruri de caractere, massive,culori, stiluri

Fisiere sursa

Informatii pachet

Structura fisierului de configurare :

Atribute aplicatie

Component aplicatie

Tipuri de layout:

LinearLayout
RelativeLayout
GridLayout

Functionalitatea aplicatiei:

Nume aplicatie
TextView

Button
RelativeLayout

Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="[Link]
xmlns:tools="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">

Fisier de resurse
<TextView android:text="@string/hello_world_TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:layout_centerHorizontal="true"
android:id="@+id/firstTextView" />
<Button

Pt a putea fi referit si folosit in cod

Folosit pentru FONT


Orientarea textView-ului
in cadrul aplicatiei

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/firstButton_textButton"
android:id="@+id/firstButton"
android:layout_below="@+id/firstTextView"
android:layout_centerHorizontal="true"
android:layout_marginTop="53dp"
/>
</RelativeLayout>

Diferenta intre wrap_content si match_parent:


TextView-ul Hello world va ocupa in
cadrul layout-ului atat spatiu cat are
nevoie pentru a incapea textul.
Hello world

Hello Again

Daca in pentru TextView-ul acesta avem:


android:layout_width="match_parent"

Good bye!

android:layout_height="wrap_content"
atunci acesta va ocupa tot spatiul
pe orizontala si doar cat are nevoie
pt a incapea textul pe verticala

android:layout_width="match_parent"
android:layout_height="match_content"
Ocupa tot spatiul ramas

Fisier de resurse - [Link]


<resources>
<string name="app_name">Introduction</string>

Ce apare pe ecran

<string name="hello_world_TextView">Hello Again!</string>


<string name="firstButton_textButton">You Clicked</string>
</resources>

android:text="@string/hello_world_TextView"

Fisier de
resurse(destinatie)

[Link]
package [Link];
import
import
import
import
import

[Link];
[Link];
[Link];
[Link];
[Link];

public class MainActivity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);

Interfata aplicatiei
setContentView([Link].activity_main);
//initializare controale folosite

Pentru folosirea controalelor din interfata (fisier xml) trebuie mai intai gasite (folosind
findViewById si id-ul controlului respectiv ) si Initializate (folosind instante ale acestora , ex:
Button button => button e o instanta a controlului Button.

final TextView tv = (TextView)findViewById([Link]);


Button button = (Button)findViewById([Link]);

Pentru a face butonul You Clicked sa fie responsive, folosim metoda setOnClickListener
[Link](new [Link]() {
@Override
public void onClick(View v) {
[Link]("You Clicked");
}
});
}

Unde este?
}

findViewById([Link]);

Unde il memoram pentru a putea fi folosit?

Folosirea controalelor:

Button button =(Button)findViewById([Link]);

Ce metoda necesita pentru a fi responsive?


[Link](new
[Link]() {
@Override
public void onClick(View v) {
}
});

You Clicked
}

Ce se intampla la apasarea butonului?


[Link]("You Clicked");

S-ar putea să vă placă și