0% acharam este documento útil (0 voto)
1 visualizações28 páginas

Android 08

O documento aborda o desenvolvimento de aplicativos Android, com foco em SQLite como sistema de gerenciamento de banco de dados. Ele inclui uma ementa que cobre tópicos como introdução ao Android, componentes de interface e manipulação de dados com SQLite. Além disso, apresenta exemplos de código para criação, seleção, atualização e exclusão de registros em um banco de dados SQLite.

Enviado por

Junior Rocha
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
1 visualizações28 páginas

Android 08

O documento aborda o desenvolvimento de aplicativos Android, com foco em SQLite como sistema de gerenciamento de banco de dados. Ele inclui uma ementa que cobre tópicos como introdução ao Android, componentes de interface e manipulação de dados com SQLite. Além disso, apresenta exemplos de código para criação, seleção, atualização e exclusão de registros em um banco de dados SQLite.

Enviado por

Junior Rocha
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Desenvolvimento

Mobile Android
CCO-2-3-N
Calendário
Ementa ANDROID
1. Introdução ao Android
2. Linguagem Java e Orientação a Objetos
3. Layouts
4. Componentes de Interface
5. Componentes de Listagem
6. Activities e Fragments
7. Mídias
8. SQLite
9. Firebase
10. Projetos
Bibliografia ANDROID
• Básica:
o DEITEL, Harvey; DEITEL, Paul; DEITEL, Abbey. Android. Porto Alegre: Bookman, 2015. E-book. ISBN 9788582603482. Disponível
em: [Link] Acesso em: 27 de Jul 2023.
o DEITEL, Paul; DEITEL, Harvey; WALD, Alexander. Android 6 para Programadores. Porto Alegre: Bookman, 2016. E-book. ISBN
9788582604120. Disponível em: [Link] Acesso em: 27 de Jul 2023.
o MONK, Simon. Projetos com arduino e android: use seu smartphone ou tablet para controlar o arduino (Tekne). Porto Alegre:
Bookman, 2014. E-book. ISBN 9788582601228. Disponível em: [Link]
Acesso em: 27 de Jul 2023.
• Complementar:
o HORSTMANN, Cay. Conceitos de Computação com Java. Porto Alegre: Bookman, 2009. E-book. ISBN 9788577804078. Disponível
em: [Link] Acesso em: 27 de Jul 2023.
o MARTHA, Luiz. Análise Matricial de Estruturas com Orientação a Objetos. Rio de Janeiro: GEN LTC, 2018. E-book. ISBN
9788595155572. Disponível em: [Link] Acesso em: 27 de Jul 2023.
o MORAIS, Myllena Silva de Freitas; MARTINS, Rafael Leal; SANTOS, Marcelo da Silva dos et al. Fundamentos de desenvolvimento
mobile. Porto Alegre: SAGAH, 2022. E-book. ISBN 9786556903057. Disponível em:
[Link] Acesso em: 27 de Jul 2023.
o ROMAN, Ed; AMBLER, Scott W.; JEWELL, Tyler. Dominando Enterprise Javabeans. Porto Alegre: Bookman, 2004. E-book. ISBN
9788577804061. Disponível em: [Link] Acesso em: 27 de Jul 2023.
o SCHILDT, Herbert. Java para Iniciantes. Porto Alegre: Bookman, 2015. E-book. ISBN 9788582603376. Disponível em:
[Link] Acesso em: 27 de Jul 2023.
8. SQLite
Introdução

• O SQLite é uma biblioteca de software que fornece um sistema de


gerenciamento de banco de dados relacional.
• O termo "lite" no SQLite refere-se à sua natureza leve em termos de
configuração, administração de banco de dados e recursos necessários.
• O SQLite possui as seguintes características:
o Self-contained
o Serverless
o Zero-configuration
o Transacional
8. SQLite
Introdução

• Serverless:
o Um SGBD tradicional precisa criar requisições para enviar/receber
informações de um banco de dados.
o O SQLite está integrado ao aplicativo e por isso suas requisições são
processadas diretamente no banco de dados, conforme arquitetura a seguir.

app Conector
8. SQLite
Introdução

• Self-contained:
o O SQLite é autossuficiente, exigindo suporte mínimo do sistema operacional
ou de bibliotecas externas. Isso o torna adequado para qualquer ambiente,
especialmente em dispositivos embarcados como smartphones.
o O SQLite é desenvolvido em ANSI-C e o código-fonte fica disponível junto com
os arquivos ao seu projeto e é compilado junto com o seu código-fonte.
8. SQLite
Introdução

• Zero-configuration:
o Graças à arquitetura sem servidor do SQLite, você não precisa "instalar" o
SQLite antes de usá-lo. Além disso, o SQLite não requer nenhum arquivo de
configuração.
• Transacional:
o Todas as transações no SQLite são totalmente compatíveis com ACID, o que
significa que todas as consultas e alterações são Atômicas, Consistentes,
Isoladas e Duráveis.
o Todas as alterações dentro de uma transação ocorrem completamente ou não
ocorrem de forma alguma, mesmo em situações inesperadas, como uma falha
de aplicativo, queda de energia por falta de bateria ou desligamento.
8. SQLite
Criação do Banco de Dados e Tabela

Campo Tipo
id INTEGER PRIMARY KEY AUTOINCREMENT
nome VARCHAR
email VARCHAR
instagram VARCHAR

CREATE TABLE IF NOT EXISTS amigos (


id INTEGER PRIMARY KEY AUTOINCREMENT,
nome VARCHAR,
email VARCHAR,
instagram VARCHAR)
8. SQLite
Criação do Banco de Dados e Tabela
public class MainActivity extends AppCompatActivity {
private Intent intentCriar;
SQLiteDatabase bdAmigos;

@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
try{
// Criação/Abertura do Banco
bdAmigos = openOrCreateDatabase("appSQLite", MODE_PRIVATE, null);
// Criação da Tabela
[Link]("CREATE TABLE IF NOT EXISTS amigos (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"nome VARCHAR, email VARCHAR, instagram VARCHAR)");
} catch(Exception e){
[Link]();
}

intentCriar = new Intent(getApplicationContext(), [Link]);


}
8. SQLite
Seleção dos Registros

Campo Tipo
id INTEGER PRIMARY KEY AUTOINCREMENT
nome VARCHAR
email VARCHAR
instagram VARCHAR

SELECT id, nome, email, instagram


FROM amigos
8. SQLite
Seleção dos Registros

RecyclerView item_amigo.xml

TextView: txtNome
TextView: txtEmail
activity_main.xml TextView: txtInstagram
TextView: txtID

FloatingActionButton
8. SQLite
Seleção dos Registros
public void montarRecyclerView(){
RecyclerView amigosRecyclerView = findViewById([Link]);
// 1. Selecionar os dados do BD
List<Amigo> lista = new ArrayList<>();
try {
// Seleção de todos os Registros do BD
String sql;
sql = "SELECT id, nome, email, instagram FROM amigos";
Cursor umCursor = [Link](sql, null);
int indiceID = [Link]("id");
int indiceNome = [Link]("nome");
int indiceEmail = [Link]("email");
int indiceInstagram = [Link]("instagram");
[Link]();
while (umCursor != null) {
[Link](new Amigo([Link](indiceID), [Link](indiceNome),
[Link](indiceEmail), [Link](indiceInstagram)));
[Link]();
}
} catch(Exception e){}
// continua...
8. SQLite
Seleção dos Registros
// 2. Configurar o Adaptador
AmigoAdapter adaptador = new AmigoAdapter(lista, bdAmigos);

// 3. Configurar o RecyclerView
[Link](new LinearLayoutManager(this));
[Link](true);
[Link](adaptador);
}

public void incluirAmigo(View view){


startActivity(intentCriar);
}

public void onStart(){


[Link]();
// Atualização do RecyclerView
montarRecyclerView();
}
8. SQLite
Seleção dos Registros
public class Amigo implements Serializable {
private long id;
private String nome;
private String email;
private String instagram;

public Amigo(long id, String nome, String email, String instagram) {


[Link] = id;
[Link] = nome;
[Link] = email;
[Link] = instagram;
}

// Getters e Setters
}
8. SQLite
Seleção dos Registros
public class AmigoAdapter extends [Link]<[Link]> {
List<Amigo> listaAmigos;
SQLiteDatabase bdAmigos;
public AmigoAdapter(List<Amigo> lista, SQLiteDatabase bd) {
[Link] = lista;
bdAmigos = bd;
}
@Override
public AmigoViewHolder onCreateViewHolder(@NonNull ViewGroup pai, int tipoView) {
View itemLista = [Link]([Link]())
.inflate([Link].item_amigo, pai, false);
return new AmigoViewHolder(itemLista);
}
@Override
public void onBindViewHolder(@NonNull AmigoViewHolder local, int posicao) {
Amigo umAmigo = [Link](posicao);
[Link]([Link]([Link]()));
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
}
// continua...
8. SQLite
Seleção dos Registros
@Override
public int getItemCount() {
return [Link]();
}

public class AmigoViewHolder extends [Link] {


TextView id, nome, email, instagram;
Intent intentUpdate, intentDelete;

public AmigoViewHolder(@NonNull View itemView) {


super(itemView);
id = [Link]([Link]);
nome = [Link]([Link]);
email = [Link]([Link]);
instagram = [Link]([Link]);
intentUpdate = new Intent([Link](), [Link]);
intentDelete = new Intent([Link](), [Link]);
ativarCliqueCurto();
ativarCliqueLongo();
}
// continua...
8. SQLite
Seleção dos Registros
public void ativarCliqueCurto() {
[Link](new [Link]() {
public void onClick(View v) {
int posicao = getBindingAdapterPosition();
Amigo amigoSelecionado = [Link](posicao);
[Link]("amigo", amigoSelecionado);
[Link]().startActivity(intentUpdate);
}});
}

public void ativarCliqueLongo() {


[Link](new [Link]() {
public boolean onLongClick(View v) {
int posicao = getBindingAdapterPosition();
Amigo amigoSelecionado = [Link](posicao);
[Link]("amigo", amigoSelecionado);
[Link]().startActivity(intentDelete);
return true;
}});
}
}
}
8. SQLite
Atualização de Registro

Campo Tipo
id INTEGER PRIMARY KEY AUTOINCREMENT
nome VARCHAR
email VARCHAR
instagram VARCHAR

UPDATE amigos
SET nome = 'Oswaldo Pinguim',
email = 'oswaldo@[Link]',
instagram = '@oswaldocn'
WHERE id = 7
8. SQLite
Atualização de Registro
public class Update extends AppCompatActivity {
SQLiteDatabase bdAmigos;
Amigo umAmigo;
TextView id;
EditText nome;
EditText email;
EditText instagram;

@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
// Criação/Abertura do Banco
bdAmigos = openOrCreateDatabase("appSQLite", MODE_PRIVATE, null);
// Link com os componentes de Tela
id = findViewById([Link]);
nome = findViewById([Link]);
email = findViewById([Link]);
instagram = findViewById([Link]);
atualizarCampos();
}
// continua...
8. SQLite
Atualização de Registro
public void atualizarCampos(){
// Pegando o objeto do Intent
Bundle dados = getIntent().getExtras();
umAmigo = (Amigo)[Link]("amigo");
// Atualizando os componentes de Tela
[Link]([Link]([Link]()));
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
}

public void atualizarAmigo(View view){


// Atualização do Registro
String sql;
sql = "UPDATE amigos SET nome = '" + [Link]() + "', " +
"email = '" + [Link]() + "', " +
"instagram = '" + [Link]() + "' " +
"WHERE id = " + [Link]();
[Link](sql);
finish();
}
}
8. SQLite
Exclusão de Registro

Campo Tipo
id INTEGER PRIMARY KEY AUTOINCREMENT
nome VARCHAR
email VARCHAR
instagram VARCHAR

DELETE FROM amigos


WHERE id = 6
8. SQLite
Exclusão de Registro
public class Delete extends AppCompatActivity {
SQLiteDatabase bdAmigos;
Amigo umAmigo;
TextView id;
EditText nome;
EditText email;
EditText instagram;

@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
// Criação/Abertura do Banco
bdAmigos = openOrCreateDatabase("appSQLite", MODE_PRIVATE, null);
// Link com os componentes de Tela
id = findViewById([Link]);
nome = findViewById([Link]);
email = findViewById([Link]);
instagram = findViewById([Link]);
atualizarCampos();
}
// continua...
8. SQLite
Exclusão de Registro
public void atualizarCampos(){
// Pegando o objeto do Intent
Bundle dados = getIntent().getExtras();
umAmigo = (Amigo)[Link]("amigo");
// Atualizando os componentes de Tela
[Link]([Link]([Link]()));
[Link]([Link]());
[Link]([Link]());
[Link]([Link]());
}

public void excluirAmigo(View view){


// Atualização do Registro
String sql;
sql = "DELETE FROM amigos WHERE id = " + [Link]();
[Link](sql);
finish();
}
}
8. SQLite
Inclusão de Registro

Campo Tipo
id INTEGER PRIMARY KEY AUTOINCREMENT
nome VARCHAR
email VARCHAR
instagram VARCHAR

INSERT INTO amigos (nome, email, instagram)


VALUES ('Steve Magal',
'[Link]@[Link]',
'@stevemagal')
8. SQLite
Inclusão de Registro
public class Create extends AppCompatActivity {
SQLiteDatabase bdAmigos;
EditText nome;
EditText email;
EditText instagram;

@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
// Criação/Abertura do Banco
bdAmigos = openOrCreateDatabase("appSQLite", MODE_PRIVATE, null);
// Link com os componentes de Tela
nome = findViewById([Link]);
email = findViewById([Link]);
instagram = findViewById([Link]);
}
// continua...
8. SQLite
Inclusão de Registro
public void incluirAmigo(View view){
// Inclusão do Registro
String sql;
sql = "INSERT INTO amigos (nome, email, instagram) " +
"VALUES ('" + [Link]() + "'," +
"'"+ [Link]() +"'," +
"'"+ [Link]() +"')";
[Link](sql);
finish();
}
}
Desenvolvimento Mobile
Android

Prof. Clayton Valdo

Você também pode gostar