Escolar Documentos
Profissional Documentos
Cultura Documentos
com Android
Instituto Federal de Mato Grosso
Prof. Alberto Sales
Criando um CRUD com Android usando SQLite
Descrição
SQLiteOpenHelper é projetado para resolver
dois problemas muito comuns.
●
Quando o aplicativo é executado pela primeira
vez - Neste ponto, ainda não temos um banco
de dados. Portanto, teremos que criar as
tabelas, índices, dados de inicialização e assim
por diante.
●
Quando o aplicativo é atualizado para um
esquema mais novo - O banco de dados ainda
estará no esquema antigo da edição mais
antiga do aplicativo.
Teremos a opção de alterar o esquema do
banco de dados para corresponder às
Criando um CRUD com Android usando SQLite
Descrição
O SQLiteOpenHelper encerra essa lógica para
criar e atualizar um banco de dados de acordo
com nossas especificações. Para isso,
precisamos criar uma subclasse personalizada
do SQLiteOpenHelper implementando pelo
menos os três métodos a seguir:
●
Construtor
●
onCreate(SQLiteDatabase db)
●
onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion)
Criando um CRUD com Android usando SQLite
Descrição
Construtor: Esse leva o contexto (por exemplo,
uma atividade), o nome do banco de dados,
uma fábrica, opcional, de cursor e um valor
inteiro representando a versão do esquema de
banco de dados que você está usando
(normalmente a partir de 1, sendo
incrementado).
onCreate(SQLiteDatabase db): É chamado
quando não há banco de dados e o aplicativo
precisa de um. Ele passa-nos um objeto
SQLiteDatabase, apontando para um banco
de dados recém-criado, que podemos preencher
com tabelas e dados iniciais.
Criando um CRUD com Android usando SQLite
Descrição
onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion): Ele é chamado
quando a versão de esquema que precisamos
não coincide com a versão de esquema do
banco de dados, passa-nos um objeto
SQLiteDatabase e os números de versão antiga
e nova. Daí podemos descobrir a melhor
maneira de converter o banco de dados do
esquema antigo para o novo.
Criando um CRUD com Android usando SQLite
Descrição
Abertura e encerramento da conexão de banco
de dados SQLite do Android
Antes de executar qualquer operação de banco
de dados como inserir, atualizar, excluir
registros em uma tabela, abra primeiro a
conexão do banco de dados chamando o
método getWritableDatabase () como mostrado
abaixo:
public DBManager open() throws SQLException {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_lista_vazia);
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.adicionar_registro) {
}
return super.onOptionsItemSelected(item);
}
}
Nesta atividade o objeto DBManager é invocado para executar operações
Criando um CRUD com Android usando SQLite
Descrição
Um SimpleCursorAdapter é definido para adicionar
elementos à lista a partir dos resultados da consulta que
são retornados em um objeto de cursor.
Clicar no item da lista uma Intent é executada para
abrir a classe AlterarProdutoActivity.
tools:context="com.journaldev.sqlite.com.albertosales.sqlite.ProdutoListaAc
tivity" >
<item
android:id="@+id/adicionar_registro"
android:icon="@android:drawable/ic_menu_add"
android:orderInCategory="100"
android:title="@string/adicionar_registro"
app:showAsAction="always"/>
</menu>
O layout xml e o código de
AdicionarProdutoActivity
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp" >
<EditText
android:id="@+id/nome_edittext" Dois
Dois componentes
componentes EditText
EditText que
que levam
levam as
as
android:layout_width="match_parent" entradas para NOME DO PRODUTO
entradas para NOME DO PRODUTO e e
android:layout_height="wrap_content" DESCRIÇÃO
DESCRIÇÃO juntamente
juntamente comcom um
um botão
botão
android:ems="10" para
para adicionar
adicionar os
os valores
valores para
para oo banco
banco de
de
android:hint="@string/titulo_nome" > dados
dados ee exibi-lo
exibi-lo no
no ListView
ListView são
são definidos.
definidos.
<requestFocus />
</EditText>
<EditText
android:id="@+id/descricao_edittext" <Button
android:layout_width="match_parent" android:id="@+id/adicionar_registro"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:ems="10" android:layout_height="wrap_content"
android:hint="@string/titulo_descricao" android:layout_gravity="center"
android:inputType="textMultiLine" android:text="@string/adicionar_registro" />
android:minLines="5" >
</EditText> </LinearLayout>
Criando um CRUD com Android usando SQLite
Descrição
AdicionarProdutoActivity.java
public class AdicionarProdutoActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("Adicionar Registro");
setContentView(R.layout.activity_adicionar_registro);
dbManager.inserir(name, desc);
startActivity(main);
break;
}
}
}
O layout xml e o código de
AlterarProdutoActivity.java
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" <LinearLayout
android:padding="10dp" > android:layout_width="fill_parent"
android:layout_height="wrap_content"
<EditText android:weightSum="2"
android:id="@+id/nome_edittext" android:gravity="center_horizontal"
android:layout_width="match_parent" android:orientation="horizontal" >
android:layout_height="wrap_content"
android:layout_marginBottom="10dp" <Button
android:ems="10" android:id="@+id/btn_atualizar"
android:hint="@string/titulo_nome" /> android:layout_width="wrap_content"
android:layout_height="wrap_content"
<EditText android:layout_weight="1"
android:id="@+id/descricao_edittext" android:text="@string/btn_atualizar" />
android:layout_width="match_parent"
android:layout_height="wrap_content" <Button
android:ems="10" android:id="@+id/btn_deletar"
android:hint="@string/titulo_descricao" android:layout_width="wrap_content"
android:inputType="textMultiLine" android:layout_height="wrap_content"
android:minLines="5" > android:layout_weight="1"
</EditText> android:text="@string/btn_deletar" />
</LinearLayout>
</LinearLayout>
Criando um CRUD com Android usando SQLite
Descrição
AlterarProdutoActivity.java
public class AlterarProdutoActivity extends Activity implements OnClickListener {
private EditText nomeText,descText;
private Button atualizarBtn, deletarBtn;
private long _id;
private DBManager dbManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("Alterar Registro");
setContentView(R.layout.activity_alterar_registro);
dbManager = new DBManager(this);
dbManager.abrir();
nomeText = (EditText) findViewById(R.id.nome_edittext);
descText = (EditText) findViewById(R.id.descricao_edittext);
nomeText.setText(nome);
descText.setText(desc);
atualizarBtn.setOnClickListener(this);
deletarBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_atualizar:
String nome = nomeText.getText().toString();
String desc = descText.getText().toString();
case R.id.btn_deletar:
dbManager.deletar(_id);
this.retornarInicio();
break;
}
}
Criando um CRUD com Android usando SQLite
Descrição
AlterarProdutoActivity.java
public void retornarInicio() {
Intent inicio_intent = new Intent(getApplicationContext(), ProdutoListaActivity.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(inicio_intent);
}
}