Buscar

Desenvolvimento de um aplicativo com a persistência de dados com o uso do SQLite no Android

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

<?xml version="1.0" encoding="utf-8"?> 
<androidx.constraintlayout.widget.ConstraintLayout 
 xmlns:android="http://schemas.android.com/apk/res/android" 
 xmlns:app="http://schemas.android.com/apk/res-auto" 
 xmlns:tools="http://schemas.android.com/tools" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 tools:context=".ItemForm">
<?xml version="1.0" encoding="utf-8"?> 
<androidx.constraintlayout.widget.ConstraintLayout 
 xmlns:android="http://schemas.android.com/apk/res/android" 
 xmlns:app="http://schemas.android.com/apk/res-auto" 
 xmlns:tools="http://schemas.android.com/tools" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 tools:context=".ItemForm">
Desenvolvimento de um aplicativo com a persistência de dados com o uso do SQLite no Android
A persistência é um recurso muito importante no desenvolvimento de aplicativos. Saber trabalhar com os diversos tipos de armazenamento permite que você desenvolva projetos mais robustos. O desenvolvimento de projetos com uso de banco de dados, seja local ou remoto, é um pré-requisito para o desenvolvimento de aplicativos modernos.
Para a concretização dos conhecimentos obtidos nesta unidade, você deve definir um objeto para a criação de sua classe e desenvolver um projeto com uso de persistência de dados com uso do SQLite no Android para realizar a manutenção dos diferentes registros de armazenamento, com a listagem, inclusão, alteração e exclusão desses registros.
Crie um aplicativo Android para trabalhar com uma base de dados com uma tabela para persistência de dados de um objeto escolhido por você.
O objeto deve ser definido por meio de uma classe própria, com:
· O mínimo de cinco atributos (com uso de três diferentes tipos de dados) mais o atributo id (long).
· Pelo menos um método construtor.
· Métodos de acesso (setters & getters) para todos os atributos.
· Outros métodos que sejam necessários.
A aplicação deverá tratar a inclusão, alteração e exclusão dos registros, além de tratar o acesso, abertura e fechamento do recurso do banco de dados do SQLite, com o uso da arquitetura em três camadas.
O aplicativo deverá apresentar os dados dos objetos armazenados por meio de uma lista (ListView) e apresentar as funcionalidades de inclusão, exclusão e alteração, que podem ser realizadas de acordo com a sua escolha.
Você pode montar as telas a seu critério, desde que atenda aos requisitos de listagem, inclusão, exclusão e alteração dos registros.
 
Procedimentos para elaboração do TD 
Crie um projeto no Android Studio e desenvolva a aplicação. Prepare um documento do Word com uma capa (apresentado a instituição, o curso, a disciplina, o aluno e o professor); a introdução do trabalho; o conteúdo com a documentação do sistema, contendo a captura das telas e os códigos de desenvolvimento das telas (código XML da view); os códigos de programação de todas as classes com comentários e apresentação dos testes realizados com o aplicativo com as capturas das telas dos testes; a conclusão e a bibliografia do trabalho.
XML(View)
activity_item_form.xml
<?xml version="1.0" encoding=" "utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ItemForm">
<Button
    android:id="@+id/btn_alterar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="44dp"
    android:layout_marginLeft="44dp"
    android:layout_marginTop=84dp"
    android:layout_marginBottom="16dp"
    android:onClick="alterarlnserir"
    android:text="Alterar"
    app:backgroundTint="#4CAF50"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/ txt_title_person"
    app:layout_constraintVertical_bias= >
<EditText
    android:id="@+id/input_task_user_email"
    android:layout_width="257dp"
    android:layout_height="42dp"
    android:layout_marginTop="16dp"
    android:layout_marginEnd="16dp"
    android:layout_marginRight="16dp"
    android:ems="10"
    android:inputType="text"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/txt_title_locate />
<EditText
   android:id="@+id/input_task_priority"
   android:layout_width="93dp"
   android:layout_height="42dp"
   android:layout_marginStart="16dp"
   android:layout_marginLeft="16dp"
   android:layout_marginTop="16dp"
   android:layout_marginEnd="16dp"
   android:layout_marginRight="16dp"
   android:ems=“10”
   android:inputType=”number”
   app:layout_constraintEnd_toStartOf=”@+id/input_task_user_email”
   app:layout_contraintHorizontal_bias=”0.0”
   app:layout_contraintStart_toStartOf=”parent”
   app:layout_contraintTop_toBottomOf=”@+id/txt_title_priority />”
<TextView
    android:id="@+id/txt_title_locate"
    android:layout_width="63dp"
    android:layout_height="38dp"
    android:layout_marginTop="16dp"
    android:layout_marginEnd="208dp"
    android:layout_marginRight="208dp"
    android:text="Email"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_contraintTop_toBottomOf="@id+/input_task_description" />
<TextView
    android:id="@+id/txt_title_priority"
    android:layout_width="84dp"
    android:layout_height="38dp"
    android:layout_marginStart="16dp"
    android:layout_marginLeft="16dp"
    android:layout_marginTop="16dp"
    android:text="Prioridade"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_contraintTop_toBottomOf="@id+/input_task_description" />
<TextView
    android:id="@+id/txt_title_task"
    android:layout_width="98dp"
    android:layout_height="27dp"
    android:text="Titulo"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.076"
    app:layout_constraintStart_toStarOf="parent"
    tools:layout_editor_abosoluteY="16dp"
    app:layout_contraintTop_toBottomOf="@id+/txt_title_task"
    tools:ignore=NotSibling />
<EditText
    android:id="@+id/input_text_title"
    android:layout_width="363dp"
    android:layout_height="48dp"
    android:layout_marginTop="22dp"
    android:ems="10"
    android:inputType="text"
    android:layout_marginEnd="208dp"
    android:layout_marginRight="208dp"
    android:text="Email"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_contraintStart_toStartOf="parent"   
    app:layout_contraintTop_toBottomOf="@id+/txt_title_task" />
<TextView
    android:id="@+id/text_title_description"
    android:layout_width="100dp"
    android:layout_height="30dp"
    android:layout_marginTop="16dp"
    android:text="Descrição"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.077"
    app:layout_contraintStart_toStartOf="parent"
    app:layout_contraintTop_toBottomOf="@id+/input_task_title" />
<EditText
    android:id="@+id/input_task_description"
    android:layout_width="370dp"
    android:layout_height="74dp"
    android:layout_marginTop="16dp"
    android:ems="10"
    android:inputType="text"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_contraintStart_toStartOf="parent"
    app:layout_contraintTop_toBottomOf="@id+/txt_title_description" />
<Button
    android:id="@+id/btn_excluir"
    android:layout_width="warp_content"
    android:layout_height="warp_content"
    android:layout_marginTop="84dp"
    android:layout_marginEnd="20dp"
    android:layout_marginRight="20dp"
    android:layout_marginBottom="16dp"
    android:onClick="excluir"
    android:text="Excluir"
    app:backgroundTint="#4CAF50"
    app:layout_contraintBottom_toBottomOf="parent"
    app:layout_contraintEnd_toEndOf="parent"
    app:layout_contraintTop_toBottomOf="@+id/input_task_user"
    app:layout_constraintVertical_bias="0.0" />
<Button
    android:id="@+id/btn_voltar"android:layout_width="warp_content"
    android:layout_height="warp_content"
    android:layout_marginTop="16dp"
    android:layout_marginBottom="16dp"
    android:onClick="voltar"
    android:text="Voltar"
    app:backgroundTint="#4CAF50"
    app:layout_contraintBottom_toBottomOf="parent"
    app:layout_contraintEnd_toEndOf="parent"
    app:layout_contraintTop_toBottomOf="@+id/input_task_user"/
    app:layout_contraintStart_toStartOf="parent"
    app:layout_constraintHorizontal_bias="0.0" />
    app:layout_constraintVertical_bias="1.0" />
<TextView
    android:id="@+id/txt_title_person"
    android:layout_width="93dp"
    android:layout_height="44dp"
    android:layout_marginStart="16dp"
    android:layout_marginLeft="16dp"
    android:layout_marginTop="32dp"
    android:text="Usuario"
    app:layout_constraintStart_toStartOf="parent”
    app:layout_constraintTop_toBottomOf="@+id/input_task_priority" />
<EditText
    android:id="@+id/input_task_user"
    android:layout_width="252dp"
    android:layout_height="48dp"
    android:layout_marginTop="28dp"
    android:ems="10"
    android:inputType="textPersonName”
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.52"
    app:layout_constraintStart_toEndOf="@+id/txt_title_person"
    app:layout_constraintTop_toBottomOf="@+id/input_task_priority" />
</androidx.constraintlayout. widget. ConstraintLayout>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/ tools"
    android: layout_width="match_parent"
    android: layout_height="match_parent"
    tools:context=".MainActivity">
<ListView
    android:id="@+id/ lista"
    android:layout_width="298dp"
    android:layout_height="546dp"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="36dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent”
    app:layout_constraintTop_toTopOf="parent"></ListView>
<Button
    android:id="@+id/btn_app_sair"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="20dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:onClick="sair"
    android:text="Sair"
    app:backgroundTint="#4CAF50"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.678"
    app:layout_constraintStart_toEndOf="@+id/btn_incluir_task"
    app:layout_constraintTop_toBottomOf="@+id/lista" /> 
<TextView
    android:id="@+id/txt_title_list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginBottom="8dp"
    android:text="Lista de Items"
    app:layout_constraintBottom_toTopOf="@+id/lista"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.457" />
    
<Button
    android:id="@+id/btn_incluir_task"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="20dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:onClick="incluirItem"
    android:text="Add Item"
    app:backgroundTint="#4CAF50"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.078"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/lista" />
</androidx.constraintlayout.widget.ConstraintLayout> 
Java Controller
item.java
package com.example.todolist;
public class Item {
private long id;
private String title;
private String description;
private int priority;
private String userEmail;
private String user;
public Item() {
title = "Titulo do Item";
description = "Finalizar a AVA 2 da disciplina de Android";
priority = 1;
userEmail = "moisesNaoConsegue@gmail.com";
user = "Moises";
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
if (!title.isEmpty()) {
this.title = title;
}
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
if (!description.isEmpty()) {
this.description = description;
}
}
public int getPriority() {
return priority;
}
public void setPriority(int priority) {
if (priority >= 0) {
this.priority = priority;
}
}
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
if (!userEmail.isEmpty()) {
this.userEmail = userEmail;
}
}
public String getUser() {
return user;
public void setUser(String user) {
if (!user.isEmpty()) {
this.user = user;
}
}
public String textoLista() {
String item;
item = getTitle();
item += "\nDescrição: " + getDescription();
item += "\nPrioridade: " + getPriority();
item += "\nEmail: " + getUserEmail();
item += "\nUsuario: " + getUser();
return item;
}
}
item_DAO.java
package com.example.todolist;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import java.util.ArrayList;
import java.util.List;
public class Item_DAO {
private SQLiteDatabase database;
private String[] columns = {
ItemSQLiteOpenHelper.COLUNA_ID,
ItemSQLiteOpenHelper.COLUNA_TITLE,
ItemSQLiteOpenHelper.COLUNA_DESCRIPTION,
ItemSQLiteOpenHelper.COLUNA_PRIORITY,
ItemSQLiteOpenHelper.COLUNA_LOCATE,
ItemSQLiteOpenHelper.COLUNA_PERSON
};
private ItemSQLiteOpenHelper sqliteOpenHelper;
public Item_DAO(Context context) {
sqliteOpenHelper = new ItemSQLiteOpenHelper(context);
}
public void open() throws SQLException {
database = sqliteOpenHelper.getWritableDatabase();
}
public void close() {
sqliteOpenHelper.close();
}
public void inserir(String title, String description, intpriority, String locate, String person) {
ContentValues values = new ContentValues();
values.put(ItemSQLiteOpenHelper.COLUNA_TITLE, title);
values.put(ItemSQLiteOpenHelper.COLUNA_DESCRIPTION,
description);
values.put(ItemSQLiteOpenHelper.COLUNA_PRIORITY,
String.valueOf(priority));
values.put(ItemSQLiteOpenHelper.COLUNA_LOCATE, locate);
values.put(ItemSQLiteOpenHelper.COLUNA_PERSON, person);
database.insert(ItemSQLiteOpenHelper.TABELA, null, values);
}
public void alterar(long id, String title, String description, int
priority, String locate, String person) {
ContentValues values = new ContentValues();
values.put(ItemSQLiteOpenHelper.COLUNA_TITLE, title);
values.put(ItemSQLiteOpenHelper.COLUNA_DESCRIPTION,
description);
values.put(ItemSQLiteOpenHelper.COLUNA_PRIORITY,
String.valueOf(priority));
values.put(ItemSQLiteOpenHelper.COLUNA_LOCATE, locate);
values.put(ItemSQLiteOpenHelper.COLUNA_PERSON, person);
database.update(ItemSQLiteOpenHelper.TABELA, values,
ItemSQLiteOpenHelper.COLUNA_ID + "=" + id, null);
}
public void apagar(long id) {
database.delete(ItemSQLiteOpenHelper.TABELA,
ItemSQLiteOpenHelper.COLUNA_ID
+ " = " + id, null);
}
public Item buscar(long id) {
Cursor cursor = database.query(ItemSQLiteOpenHelper.TABELA,
columns, ItemSQLiteOpenHelper.COLUNA_ID + " = " +id, null, null, null
,null);
cursor.moveToFirst();
Item item = new Item();
item.setId(cursor.getLong(0));
item.setTitle(cursor.getString(1));
item.setDescription(cursor.getString(2));
item.setPriority(cursor.getInt(3));
item.setUserEmail(cursor.getString(4));item.setUser(cursor.getString(5));
cursor.close();
return item;
}
public List<Item> getAll() {
List<Item> items = new ArrayList<Item>();
Cursor cursor = database.query(ItemSQLiteOpenHelper.TABELA,
columns, null, null, null,null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
Item item = new Item();
item.setId(cursor.getLong(0));
item.setTitle(cursor.getString(1));
item.setDescription(cursor.getString(2));
item.setPriority(cursor.getInt(3));
item.setUserEmail(cursor.getString(4));
item.setUser(cursor.getString(5));
items.add(item);
cursor.moveToNext();
}
cursor.close();
return items;
}
}
itemForm.java
package com.example.todolist;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
public class ItemForm extends AppCompatActivity {
EditText input_task_title, input_task_desription,
input_task_priority,
input_task_user_email, input_task_user;
Button btn_alterar, btn_excluir;
private int acao;
private long id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_item_form);
btn_alterar = (Button) findViewById(R.id.btn_alterar);
btn_excluir = (Button) findViewById(R.id.btn_excluir);
input_task_title = (EditText)
findViewById(R.id.input_task_title);
input_task_desription = (EditText)
findViewById(R.id.input_task_desription);
input_task_priority = (EditText)
findViewById(R.id.input_task_priority);
input_task_user_email = (EditText)
findViewById(R.id.input_task_user_email);
input_task_user = (EditText)
findViewById(R.id.input_task_user);
acao = getIntent().getExtras().getInt("acao");
id = getIntent().getExtras().getLong("id");
if (acao == -1) {
setTitle("Incluir Item");
btn_alterar.setText("Incluir");
btn_excluir.setEnabled(false);
input_task_title.setText("Nome do Item");
input_task_desription.setText("Descrição do Item");
input_task_priority.setText("1");
input_task_user_email.setText("Email do usuario");
input_task_user.setText("Usuario");
} else {
setTitle("Alterar ou Excluir Item");
Item aux = new Item();Item_DAO dao = new Item_DAO(this);
dao.open();
aux = dao.buscar(id);
input_task_title.setText(aux.getTitle());
input_task_desription.setText(aux.getDescription());
input_task_priority.setText(String.valueOf(aux.getPriority()));
input_task_user_email.setText(aux.getUserEmail());
input_task_user.setText(aux.getUser());
dao.close();
}
}
public void alterarInserir(View v) {
int priority;
String title, description, user_email, user;
title = input_task_title.getText().toString();
description = input_task_desription.getText().toString();
user_email = input_task_user_email.getText().toString();
user = input_task_user.getText().toString();
priority =
Integer.parseInt(input_task_priority.getText().toString());
Item_DAO dao = new Item_DAO(this);
dao.open();
if (acao == -1) {
dao.inserir(title, description , priority, user_email,
user);
} else {
dao.alterar( id , title, description, priority,
user_email, user);
}
dao.close();
finish();
}
public void excluir(View v) {
if (acao == 0) {
Item_DAO dao = new Item_DAO(this);
dao.open();
dao.apagar(id);
dao.close();
}
finish();
}
public void voltar(View v) {
finish();
}
}
ItemSQLiteOpenHelper.java
package com.example.todolist;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class ItemSQLiteOpenHelper extends SQLiteOpenHelper {
public static final String TABELA = " Item ";
public static final String COLUNA_ID = " id ";
public static final String COLUNA_TITLE = " title ";
public static final String COLUNA_DESCRIPTION = " description ";
public static final String COLUNA_PRIORITY = " priority ";
public static final String COLUNA_LOCATE = " locate ";
public static final String COLUNA_PERSON = " person ";
private static final String DATABASE_NAME = "items.db";
private static final int DATABASE_VERSION = 1;
private static final String CRIAR_BANCO = " create table "
+ TABELA + "("
+ COLUNA_ID + " integer primary key autoincrement , "
+ COLUNA_TITLE + " text not null , "
+ COLUNA_DESCRIPTION + " text not null, "
+ COLUNA_PRIORITY + " integer not null, "
+ COLUNA_LOCATE + " text not null, "
+ COLUNA_PERSON + " text not null);";
public ItemSQLiteOpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL (CRIAR_BANCO);
}
@Override
public void onUpgrade (SQLiteDatabase db, int oldVersion, int
newVersion) {
db. execSQL (" DROP TABLE IF EXISTS " + TABELA );
onCreate (db);
}
}
MainActivity.java
package com.example.todolist;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.Iterator;
import java.util.List;public class MainActivity extends AppCompatActivity implements
AdapterView.OnItemClickListener {
ListView lista;
Intent intent;
private Item_DAO dao ;
private String[] items;
private long[] idItems;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lista = (ListView) findViewById(R.id.lista);
setTitle("Gerenciador de Items");
dao = new Item_DAO(this);
dao.open();
lista.setOnItemClickListener(this);
}
@Override
protected void onResume(){
dao.open();
super.onResume();
List<Item> listaItems = dao.getAll();
items = new String[listaItems.size()];
idItems = new long[listaItems.size()];
int i =0;
Iterator<Item> iterator = listaItems.iterator();
while (iterator.hasNext()) {
Item aux = new Item();
aux = (Item) iterator.next();
items[i] = aux.textoLista();
idItems[i] = aux.getId();
i++;
}
ArrayAdapter<String> adapter = new
ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, items);
lista.setAdapter(adapter);
}
@Override
protected void onPause(){
dao.close();
super.onPause();
}
public void onItemClick(AdapterView<?> parent, View view, int
position, long ident){
long id = idItems[position];
intent = new Intent(getApplicationContext(), ItemForm.class);
intent.putExtra("acao", 0);
intent.putExtra("id", id);
startActivity(intent);
}
public void incluirItem(View v){
intent = new Intent(getApplicationContext(), ItemForm.class);
intent.putExtra("acao", -1);
intent.putExtra("id", 0L);
startActivity(intent);
}
public void sair(View v){
finish();
}
}
Aplicativo em execução.
 
BIBLIOGRAFIA:
STACK MOBILE. CRIANDO NOSSO PRIMEIRO APLICATIVO ANDROID - PARTE1 https://www.youtube.com/watch?v=JsipcxDE37E&ab_channel=StackMobile
STACK MOBILE. CRIANDO NOSSO PRIMEIRO APLICATIVO ANDROID - PARTE 2
https://www.youtube.com/watch?v=yJfmxzZ8xTw&ab_channel=StackMobile
DEVELOPERS ANDROID. DOCUMENTATION.
https://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper/
SIMPLIFIED CODING. #5 Android SQLite Database Tutorial – SQLiteOpenHelper
https://www.youtube.com/watch?v=YbOU_6d_zC8

Mais conteúdos dessa disciplina