O fantástico mundo de Android

29
O fantástico mundo de Android Suelen G. Carvalho

Transcript of O fantástico mundo de Android

Page 1: O fantástico mundo de Android

O fantástico mundo de Android

Suelen G. Carvalho

Page 2: O fantástico mundo de Android

Quem sou eu

www.SuelenGC.com.br | slideshare.net/suelengc

Page 3: O fantástico mundo de Android

MULHERES15!!

!Cupom especial para o dia das mulheres!!

15% de desconto

Page 4: O fantástico mundo de Android

O que é o Android ?

Page 5: O fantástico mundo de Android

Linguagem IDE ADT

www.developer.android.com

Page 6: O fantástico mundo de Android

Activity

Page 7: O fantástico mundo de Android

Criar uma tela

Activity

SuaActivity

Page 8: O fantástico mundo de Android

public class SuaActivity extends Activity { protected void onCreate (Bundle b) { super.onCreate(b); setContentView(R.layout.main_activity) ! // restante do seu código aqui… } }

<LinearLayout xmlns=“…” > <TextView android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:text=“Olá Mundo!” … /> </LinearLayout>

SuaActivity.java

main_activity.xml

(comportamento)

(view)

Page 9: O fantástico mundo de Android

Olá Mundo!

Page 10: O fantástico mundo de Android

ProjetoAgenda! src SuaActivity.java res layout main_activity.xml   drawable-mdpi! icon.jpg drawable-ldpi! icon.jpg   values!! ! strings.xml

comportamento

resources

view

Estrutura de diretórios

Page 11: O fantástico mundo de Android

Outras view's

Page 12: O fantástico mundo de Android

Nome:

Telefone:

Salvar

<EditText…/><TextView…/>

<Button…/>

Nota:

<RatingBar…/>

Page 13: O fantástico mundo de Android

<LinearLayout xmlns=“…” > <EditText android:text=“Nome: “…/> <TextView…/> !

<EditText android:text=“Telefone: “…/> <TextView…/> !

<EditText android:text=“Nota: “…/> <RatingBar…/> !

<Button android:text=“Salvar“ android:id=“@+id/btn_salvar“…/> <!-- cotinua… --> </LinearLayout>

Page 14: O fantástico mundo de Android

public class SuaActivity extends Activity { protected void onCreate (Bundle b) { super.onCreate(b); setContentView(R.layout.main_activity) ! // Recupera o botão da tela Button salvar = (Button) findViewById(R.id.btn_salvar); ! //Adiciona comportamento ao botão salvar.setOnClickListener(new OnClickListener() { public void onClick(View view) { // COMPORTAMENTO AQUI… } }); } }

Comportamento ao botão

Page 15: O fantástico mundo de Android

Ciclo de Vida da Activity

Page 16: O fantástico mundo de Android
Page 17: O fantástico mundo de Android

onCreate !

onStart !

onResume

onPause !

onStop !

onDestroy

Android KillonRestart

Ciclo de vida de uma Activity

Page 18: O fantástico mundo de Android

Listas e Adapter's

Page 19: O fantástico mundo de Android

Fulano

Ciclano

Beltrano

Exibir uma lista

Page 20: O fantástico mundo de Android

Fulano Beltrano Ciclano

Objetos (Java)View (xml)

0 1 2

Fulano

Ciclano

Beltrano

Adapter

Page 21: O fantástico mundo de Android

public class SuaActivity extends Activity { protected void onCreate (Bundle b) { // código anterior… ! // Objetos Java String[] contatos = new String[]{“Fulano”, “Beltrano”, “Ciclano”}; ! // Adapter (java -> xml) ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1, contatos); ! // Vincular adapter a lista ListView lista = (ListView) findViewById(R.id.lista); lista.setAdapter(adapter); } }

Page 22: O fantástico mundo de Android

Banco de Dados

Page 23: O fantástico mundo de Android

SQLiteOpenHelper

ContatoDAO

Criar um DAO

Page 24: O fantástico mundo de Android

public class ContatoDAO extends SQLiteOpenHelper { public void ContatoDAO(Context ctx) { super(ctx, “agenda", null, 1); } public void onCreate (SQLiteDataBase db) { String ddl = “create table contato (name text, telefone text);“; db.execSQL(ddl); } ! public void onUpgrade (SQLiteDataBase db) { // vamos deixar vazio por enquanto } }

SQLiteOpenHelper

Page 25: O fantástico mundo de Android

public class ContatoDAO extends SQLiteOpenHelper { // código anterior… ! public void adiciona(Contato contato){ // insere contato no banco… ContentValues values = new ContentValues(); values(“nome”, contato.getNome()); values(“telefone”, contato.getTelefone()); ! getWritableDatabase().insert(“agenda”, null, values); } // apagar, atualizar e buscar aqui em breve ;) }

Incluindo um contato

Page 26: O fantástico mundo de Android

public class ContatoDAO extends SQLiteOpenHelper { ! public void apaga(Contato contato){ String[] ids = {contato.getId().toString()}; getWritableDatabase().delete(“agenda”, “id=?”, ids); } !}

Apagando um contato

Page 27: O fantástico mundo de Android

public class ContatoDAO extends SQLiteOpenHelper { ! public List<Contato> busca(Contato contato){ List<Contato> contatos = new ArrayList<Contato>(); ! SQLiteDatabase database = getReadableDatabase(); Cursor cursor = database.rawQuery(“select * from agenda;”, null); ! while (cursor.moveToNext()) { Contato contato = criarContatoDo(cursor); contatos.add(contato); } return contatos; } }

Buscando os contatos

Page 28: O fantástico mundo de Android

public class ContatoDAO extends SQLiteOpenHelper { public void atualiza(Contato contato){ ContentValues values = new ContentValues(); values(“nome”, contato.getNome()); values(“telefone”, contato.getTelefone()); String[] ids = {contato.getId().toString()}; ! getWritableDatabase().update(“agenda”, values, id, ids); } }

Atualizando um contato

Page 29: O fantástico mundo de Android

Estou por aí se precisarem ;)