Prévia do material em texto
<p>UNIVERSIDADE VEIGA DE ALMEIDA</p><p>CURSO SUPERIOR DE ANÁLISE DESENVOLVIMENTO E SISTEMAS</p><p>RAYAN SILVA SANTOS</p><p>DESENVOLVIMENTO DE APLICAÇÕES MOBILE E DISTRIBUÍDAS</p><p>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.</p><p>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.</p><p>DatabaseHelper.java:</p><p>import android.content.Context;</p><p>import android.database.sqlite.SQLiteDatabase;</p><p>import android.database.sqlite.SQLiteOpenHelper;</p><p>public class DatabaseHelper extends SQLiteOpenHelper {</p><p>private static final String DATABASE_NAME = "task_manager.db";</p><p>private static final int DATABASE_VERSION = 1;</p><p>public static final String TABLE_TASKS = "tasks";</p><p>public static final String COLUMN_ID = "id";</p><p>public static final String COLUMN_TITLE = "title";</p><p>public static final String COLUMN_DESCRIPTION = "description";</p><p>public static final String COLUMN_CREATED_AT = "created_at";</p><p>public static final String COLUMN_PRIORITY = "priority";</p><p>// Constructor</p><p>public DatabaseHelper(Context context) {</p><p>super(context, DATABASE_NAME, null, DATABASE_VERSION);</p><p>}</p><p>@Override</p><p>public void onCreate(SQLiteDatabase db) {</p><p>String createTableQuery = "CREATE TABLE " + TABLE_TASKS + " (" +</p><p>COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +</p><p>COLUMN_TITLE + " TEXT," +</p><p>COLUMN_DESCRIPTION + " TEXT," +</p><p>COLUMN_CREATED_AT + " DATETIME DEFAULT CURRENT_TIMESTAMP," +</p><p>COLUMN_PRIORITY + " INTEGER" +</p><p>")";</p><p>db.execSQL(createTableQuery);</p><p>}</p><p>@Override</p><p>public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {</p><p>db.execSQL("DROP TABLE IF EXISTS " + TABLE_TASKS);</p><p>onCreate(db);</p><p>}</p><p>}</p><p>Task.java:</p><p>public class Task {</p><p>private long id;</p><p>private String title;</p><p>private String description;</p><p>private String createdAt;</p><p>private int priority;</p><p>public Task() {}</p><p>public Task(String title, String description, String createdAt, int priority) {</p><p>this.title = title;</p><p>this.description = description;</p><p>this.createdAt = createdAt;</p><p>this.priority = priority;</p><p>}</p><p>// Getters and Setters</p><p>public long getId() {</p><p>return id;</p><p>}</p><p>public void setId(long id) {</p><p>this.id = id;</p><p>}</p><p>public String getTitle() {</p><p>return title;</p><p>}</p><p>public void setTitle(String title) {</p><p>this.title = title;</p><p>}</p><p>public String getDescription() {</p><p>return description;</p><p>}</p><p>public void setDescription(String description) {</p><p>this.description = description;</p><p>}</p><p>public String getCreatedAt() {</p><p>return createdAt;</p><p>}</p><p>public void setCreatedAt(String createdAt) {</p><p>this.createdAt = createdAt;</p><p>}</p><p>public int getPriority() {</p><p>return priority;</p><p>}</p><p>public void setPriority(int priority) {</p><p>this.priority = priority;</p><p>}</p><p>}</p><p>TaskRepository.java:</p><p>import android.content.ContentValues;</p><p>import android.content.Context;</p><p>import android.database.Cursor;</p><p>import android.database.sqlite.SQLiteDatabase;</p><p>import android.util.Log;</p><p>import java.text.SimpleDateFormat;</p><p>import java.util.ArrayList;</p><p>import java.util.Date;</p><p>import java.util.List;</p><p>import java.util.Locale;</p><p>public class TaskRepository {</p><p>private DatabaseHelper dbHelper;</p><p>private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());</p><p>public TaskRepository(Context context) {</p><p>dbHelper = new DatabaseHelper(context);</p><p>}</p><p>public void addTask(Task task) {</p><p>SQLiteDatabase db = dbHelper.getWritableDatabase();</p><p>ContentValues values = new ContentValues();</p><p>values.put(DatabaseHelper.COLUMN_TITLE, task.getTitle());</p><p>values.put(DatabaseHelper.COLUMN_DESCRIPTION, task.getDescription());</p><p>values.put(DatabaseHelper.COLUMN_CREATED_AT, dateFormat.format(new Date()));</p><p>values.put(DatabaseHelper.COLUMN_PRIORITY, task.getPriority());</p><p>db.insert(DatabaseHelper.TABLE_TASKS, null, values);</p><p>db.close();</p><p>}</p><p>public List<Task> getAllTasks() {</p><p>List<Task> tasksList = new ArrayList<>();</p><p>SQLiteDatabase db = dbHelper.getReadableDatabase();</p><p>Cursor cursor = db.rawQuery("SELECT * FROM " + DatabaseHelper.TABLE_TASKS, null);</p><p>if (cursor.moveToFirst()) {</p><p>do {</p><p>Task task = new Task();</p><p>task.setId(cursor.getLong(cursor.getColumnIndex(DatabaseHelper.COLUMN_ID)));</p><p>task.setTitle(cursor.getString(cursor.getColumnIndex(DatabaseHelper.COLUMN_TITLE)));</p><p>task.setDescription(cursor.getString(cursor.getColumnIndex(DatabaseHelper.COLUMN_DESCRIPTION)));</p><p>task.setCreatedAt(cursor.getString(cursor.getColumnIndex(DatabaseHelper.COLUMN_CREATED_AT)));</p><p>task.setPriority(cursor.getInt(cursor.getColumnIndex(DatabaseHelper.COLUMN_PRIORITY)));</p><p>tasksList.add(task);</p><p>} while (cursor.moveToNext());</p><p>}</p><p>cursor.close();</p><p>return tasksList;</p><p>}</p><p>public void updateTask(Task task) {</p><p>SQLiteDatabase db = dbHelper.getWritableDatabase();</p><p>ContentValues values = new ContentValues();</p><p>values.put(DatabaseHelper.COLUMN_TITLE, task.getTitle());</p><p>values.put(DatabaseHelper.COLUMN_DESCRIPTION, task.getDescription());</p><p>values.put(DatabaseHelper.COLUMN_PRIORITY, task.getPriority());</p><p>db.update(DatabaseHelper.TABLE_TASKS, values, DatabaseHelper.COLUMN_ID + " = ?",</p><p>new String[]{String.valueOf(task.getId())});</p><p>db.close();</p><p>}</p><p>public void deleteTask(long taskId) {</p><p>SQLiteDatabase db = dbHelper.getWritableDatabase();</p><p>db.delete(DatabaseHelper.TABLE_TASKS, DatabaseHelper.COLUMN_ID + " = ?",</p><p>new String[]{String.valueOf(taskId)});</p><p>db.close();</p><p>}</p><p>}</p><p>MainActivity.java:</p><p>import android.os.Bundle;</p><p>import android.view.View;</p><p>import android.widget.AdapterView;</p><p>import android.widget.ArrayAdapter;</p><p>import android.widget.ListView;</p><p>import android.widget.Toast;</p><p>import androidx.appcompat.app.AppCompatActivity;</p><p>import java.util.ArrayList;</p><p>import java.util.List;</p><p>public class MainActivity extends AppCompatActivity {</p><p>private TaskRepository taskRepository;</p><p>private ListView listViewTasks;</p><p>private List<Task> taskList = new ArrayList<>();</p><p>private ArrayAdapter<Task> adapter;</p><p>@Override</p><p>protected void onCreate(Bundle savedInstanceState) {</p><p>super.onCreate(savedInstanceState);</p><p>setContentView(R.layout.activity_main);</p><p>taskRepository = new TaskRepository(this);</p><p>listViewTasks = findViewById(R.id.listViewTasks);</p><p>adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, taskList);</p><p>listViewTasks.setAdapter(adapter);</p><p>loadTasks();</p><p>listViewTasks.setOnItemClickListener(new AdapterView.OnItemClickListener() {</p><p>@Override</p><p>public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {</p><p>Task task = taskList.get(i);</p><p>// Implementar lógica para editar a tarefa selecionada</p><p>Toast.makeText(MainActivity.this, "Editando Tarefa: " + task.getTitle(), Toast.LENGTH_SHORT).show();</p><p>}</p><p>});</p><p>listViewTasks.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener()</p><p>{</p><p>@Override</p><p>public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {</p><p>Task task = taskList.get(i);</p><p>taskRepository.deleteTask(task.getId());</p><p>loadTasks();</p><p>Toast.makeText(MainActivity.this, "Tarefa Excluída: " + task.getTitle(), Toast.LENGTH_SHORT).show();</p><p>return true;</p><p>}</p><p>});</p><p>}</p><p>private void loadTasks() {</p><p>taskList.clear();</p><p>taskList.addAll(taskRepository.getAllTasks());</p><p>adapter.notifyDataSetChanged();</p><p>}</p><p>}</p><p>Layout da MainActivity (activity_main.xml):</p><p><?xml version="1.0" encoding="utf</p><p>REFERENCIAS:</p><p>E-book da matéria</p><p>image1.png</p>