Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Universidade Veiga de Almeida
Programação de dispositivos móveis AVA1
Prof. Claudio Fico Fonseca
Nova Iguaçu, Rio de Janeiro
2024.1
Vou assumir que escolhemos o objeto "Livro" para fins de exemplo. Aqui está
uma implementação básica que atende aos requisitos mencionados:
1.Definindo a classe Livro:
import android.content.ContentValues;
public class Book {
private int id;
private String title;
private String author;
private int year;
private double price;
private String genre;
public Book(int id, String title, String author, int year, double price, String
genre) {
this.id = id;
this.title = title;
this.author = author;
this.year = year;
this.price = price;
this.genre = genre;
}
// Getters and Setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getGenre() {
return genre;
}
public void setGenre(String genre) {
this.genre = genre;
}
@Override
public String toString() {
return title + " by " + author;
}
}
2.Criando DBHelper para o acesso a dados:
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.content.ContentValues;
import android.database.Cursor;
import java.util.ArrayList;
import java.util.List;
public class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "library.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_BOOKS = "books";
private static final String COLUMN_ID = "id";
private static final String COLUMN_TITLE = "title";
private static final String COLUMN_AUTHOR = "author";
private static final String COLUMN_YEAR = "year";
private static final String COLUMN_PRICE = "price";
private static final String COLUMN_GENRE = "genre";
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTableQuery = "CREATE TABLE " + TABLE_BOOKS + "(" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_TITLE + " TEXT, " +
COLUMN_AUTHOR + " TEXT, " +
COLUMN_YEAR + " INTEGER, " +
COLUMN_PRICE + " REAL, " +
COLUMN_GENRE + " TEXT" +
")";
db.execSQL(createTableQuery);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_BOOKS);
onCreate(db);
}
// CRUD Operations
public void addBook(Book book) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_TITLE, book.getTitle());
values.put(COLUMN_AUTHOR, book.getAuthor());
values.put(COLUMN_YEAR, book.getYear());
values.put(COLUMN_PRICE, book.getPrice());
values.put(COLUMN_GENRE, book.getGenre());
db.insert(TABLE_BOOKS, null, values);
db.close();
}
public Book getBook(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_BOOKS, new String[]{COLUMN_ID,
COLUMN_TITLE, COLUMN_AUTHOR, COLUMN_YEAR, COLUMN_PRICE,
COLUMN_GENRE},
COLUMN_ID + "=?", new String[]{String.valueOf(id)}, null, null, null,
null);
if (cursor != null)
cursor.moveToFirst();
Book book = new Book(
cursor.getInt(cursor.getColumnIndex(COLUMN_ID)),
cursor.getString(cursor.getColumnIndex(COLUMN_TITLE)),
cursor.getString(cursor.getColumnIndex(COLUMN_AUTHOR)),
cursor.getInt(cursor.getColumnIndex(COLUMN_YEAR)),
cursor.getDouble(cursor.getColumnIndex(COLUMN_PRICE)),
cursor.getString(cursor.getColumnIndex(COLUMN_GENRE)));
cursor.close();
db.close();
return book;
}
public List getAllBooks() {
List bookList = new ArrayList();
String selectQuery = "SELECT * FROM " + TABLE_BOOKS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
Book book = new Book(
cursor.getInt(cursor.getColumnIndex(COLUMN_ID)),
cursor.getString(cursor.getColumnIndex(COLUMN_TITLE)),
cursor.getString(cursor.getColumnIndex(COLUMN_AUTHOR)),
cursor.getInt(cursor.getColumnIndex(COLUMN_YEAR)),
cursor.getDouble(cursor.getColumnIndex(COLUMN_PRICE)),
cursor.getString(cursor.getColumnIndex(COLUMN_GENRE)));
bookList.add(book);
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return bookList;
}
public int updateBook(Book book) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_TITLE, book.getTitle());
values.put(COLUMN_AUTHOR, book.getAuthor());
values.put(COLUMN_YEAR, book.getYear());
values.put(COLUMN_PRICE, book.getPrice());
values.put(COLUMN_GENRE, book.getGenre());
return db.update(TABLE_BOOKS, values, COLUMN_ID + " = ?", new
String[]{String.valueOf(book.getId())});
}
public void deleteBook(Book book) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_BOOKS, COLUMN_ID + " = ?", new
String[]{String.valueOf(book.getId())});
db.close();
}
}
3.Banco de dados
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.content.ContentValues;
import android.database.Cursor;
import java.util.ArrayList;
import java.util.List;
public class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "library.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_BOOKS = "books";
private static final String COLUMN_ID = "id";
private static final String COLUMN_TITLE = "title";
private static final String COLUMN_AUTHOR = "author";
private static final String COLUMN_YEAR = "year";
private static final String COLUMN_PRICE = "price";
private static final String COLUMN_GENRE = "genre";
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTableQuery = "CREATE TABLE " + TABLE_BOOKS + "(" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_TITLE + " TEXT, " +
COLUMN_AUTHOR + " TEXT, " +
COLUMN_YEAR + " INTEGER, " +
COLUMN_PRICE + " REAL, " +
COLUMN_GENRE + " TEXT" +
")";
db.execSQL(createTableQuery);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_BOOKS);
onCreate(db);
}
// CRUD Operations
public void addBook(Book book) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_TITLE, book.getTitle());
values.put(COLUMN_AUTHOR, book.getAuthor());
values.put(COLUMN_YEAR, book.getYear());
values.put(COLUMN_PRICE, book.getPrice());
values.put(COLUMN_GENRE, book.getGenre());
db.insert(TABLE_BOOKS, null, values);
db.close();
}
public Book getBook(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_BOOKS, new String[]{COLUMN_ID,
COLUMN_TITLE, COLUMN_AUTHOR, COLUMN_YEAR, COLUMN_PRICE,
COLUMN_GENRE},
COLUMN_ID + "=?", new String[]{String.valueOf(id)}, null, null, null,
null);
if (cursor != null)
cursor.moveToFirst();
Book book = new Book(
cursor.getInt(cursor.getColumnIndex(COLUMN_ID)),
cursor.getString(cursor.getColumnIndex(COLUMN_TITLE)),
cursor.getString(cursor.getColumnIndex(COLUMN_AUTHOR)),
cursor.getInt(cursor.getColumnIndex(COLUMN_YEAR)),
cursor.getDouble(cursor.getColumnIndex(COLUMN_PRICE)),
cursor.getString(cursor.getColumnIndex(COLUMN_GENRE)));
cursor.close();
db.close();
return book;
}
public List getAllBooks() {
List bookList = new ArrayList();
String selectQuery = "SELECT * FROM " + TABLE_BOOKS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()){
do {
Book book = new Book(
cursor.getInt(cursor.getColumnIndex(COLUMN_ID)),
cursor.getString(cursor.getColumnIndex(COLUMN_TITLE)),
cursor.getString(cursor.getColumnIndex(COLUMN_AUTHOR)),
cursor.getInt(cursor.getColumnIndex(COLUMN_YEAR)),
cursor.getDouble(cursor.getColumnIndex(COLUMN_PRICE)),
cursor.getString(cursor.getColumnIndex(COLUMN_GENRE)));
bookList.add(book);
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return bookList;
}
public int updateBook(Book book) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_TITLE, book.getTitle());
values.put(COLUMN_AUTHOR, book.getAuthor());
values.put(COLUMN_YEAR, book.getYear());
values.put(COLUMN_PRICE, book.getPrice());
values.put(COLUMN_GENRE, book.getGenre());
return db.update(TABLE_BOOKS, values, COLUMN_ID + " = ?", new
String[]{String.valueOf(book.getId())});
}
public void deleteBook(Book book) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_BOOKS, COLUMN_ID + " = ?", new
String[]{String.valueOf(book.getId())});
db.close();
}
}
4. Main activity
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ListView listViewBooks;
private EditText editTextTitle, editTextAuthor, editTextYear, editTextPrice,
editTextGenre;
private Button buttonAdd, buttonUpdate, buttonDelete, buttonClear;
private List bookList;
private ArrayAdapter bookAdapter;
private DBHelper dbHelper;
private Book selectedBook;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper = new DBHelper(this);
listViewBooks = findViewById(R.id.listViewBooks);
editTextTitle = findViewById(R.id.editTextTitle);
editTextAuthor = findViewById(R.id.editTextAuthor);
editTextYear = findViewById(R.id.editTextYear);
editTextPrice = findViewById(R.id.editTextPrice);
editTextGenre = findViewById(R.id.editTextGenre);
buttonAdd = findViewById(R.id.buttonAdd);
buttonUpdate = findViewById(R.id.buttonUpdate);
buttonDelete = findViewById(R.id.buttonDelete);
buttonClear = findViewById(R.id.buttonClear);
bookList = new ArrayList();
bookAdapter = new ArrayAdapter(this,
android.R.layout.simple_list_item_1, bookList);
listViewBooks.setAdapter(bookAdapter);
listViewBooks.setOnItemClickListener(new
AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView adapterView, View view, int
position, long l) {
selectedBook = bookList.get(position);
editTextTitle.setText(selectedBook.getTitle());
editTextAuthor.setText(selectedBook.getAuthor());
editTextYear.setText(String.valueOf(selectedBook.getYear()));
editTextPrice.setText(String.valueOf(selectedBook.getPrice()));
editTextGenre.setText(selectedBook.getGenre());
}
});
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String title = editTextTitle.getText().toString();
String author = editTextAuthor.getText().toString();
int year = Integer.parseInt(editTextYear.getText().toString());
double price =
Double.parseDouble(editTextPrice.getText().toString());
String genre = editTextGenre.getText().toString();
Book book = new Book(0, title, author, year, price, genre);
dbHelper.addBook(book);
refreshBookList();
clearFields();
}
});
buttonUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (selectedBook != null) {
String title = editTextTitle.getText().toString();
String author = editTextAuthor.getText().toString();
int year = Integer.parseInt(editTextYear.getText().toString());
double price =
Double.parseDouble(editTextPrice.getText().toString());
String genre = editTextGenre.getText().toString();
selectedBook.setTitle(title);
selectedBook.setAuthor(author);
selectedBook.setYear(year);
selectedBook.setPrice(price);
selectedBook.setGenre(genre);
dbHelper.updateBook(selectedBook);
refreshBookList();
clearFields();
selectedBook = null;
}
}
});
buttonDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (selectedBook != null) {
dbHelper.deleteBook(selectedBook);
refreshBookList();
clearFields();
selectedBook = null;
}
}
});
buttonClear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clearFields();
selectedBook = null;
}
});
refreshBookList();
}
private void refreshBookList() {
bookList.clear();
bookList.addAll(dbHelper.getAllBooks());
bookAdapter.notifyDataSetChanged();
}
private void clearFields() {
editTextTitle.setText("");
editTextAuthor.setText("");
editTextYear.setText("");
editTextPrice.setText("");
editTextGenre.setText("");
}
}
5.Código da interface XML

Mais conteúdos dessa disciplina