o fantástico mundo de android
TRANSCRIPT
O fantástico mundo de Android
Suelen G. Carvalho
Quem sou eu
www.SuelenGC.com.br | slideshare.net/suelengc
MULHERES15!!
!Cupom especial para o dia das mulheres!!
15% de desconto
O que é o Android ?
Activity
Criar uma tela
Activity
SuaActivity
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)
Olá Mundo!
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
Outras view's
Nome:
Telefone:
Salvar
<EditText…/><TextView…/>
<Button…/>
Nota:
<RatingBar…/>
<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>
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
Ciclo de Vida da Activity
onCreate !
onStart !
onResume
onPause !
onStop !
onDestroy
Android KillonRestart
Ciclo de vida de uma Activity
Listas e Adapter's
Fulano
Ciclano
Beltrano
Exibir uma lista
Fulano Beltrano Ciclano
Objetos (Java)View (xml)
0 1 2
Fulano
Ciclano
Beltrano
Adapter
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); } }
Banco de Dados
SQLiteOpenHelper
ContatoDAO
Criar um DAO
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
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
public class ContatoDAO extends SQLiteOpenHelper { ! public void apaga(Contato contato){ String[] ids = {contato.getId().toString()}; getWritableDatabase().delete(“agenda”, “id=?”, ids); } !}
Apagando um contato
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
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
Estou por aí se precisarem ;)