Вы находитесь на странице: 1из 9

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 android.util.Log
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: Log.ASSERT, Log.ERROR etc
Componente de baza ale aplicatiilor Android:

Activity (clasa de baza android.app.Activity)


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="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
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 - strings.xml


<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)

MainActivity.java
package com.example.simi.introduction;
import
import
import
import
import

android.support.v7.app.AppCompatActivity;
android.os.Bundle;
android.view.View;
android.widget.Button;
android.widget.TextView;

public class MainActivity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

Interfata aplicatiei
setContentView(R.layout.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(R.id.firstTextView);


Button button = (Button)findViewById(R.id.firstButton);

Pentru a face butonul You Clicked sa fie responsive, folosim metoda setOnClickListener
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv.setText("You Clicked");
}
});
}

Unde este?
}

findViewById(R.id.firstButton);

Unde il memoram pentru a putea fi folosit?

Folosirea controalelor:

Button button =(Button)findViewById(R.id.firstButton);

Ce metoda necesita pentru a fi responsive?


button.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
}
});

You Clicked
}

Ce se intampla la apasarea butonului?


tv.setText("You Clicked");

Вам также может понравиться