I have a class Books.java
that implements
a list of Book.java
, and in MainActivity.java
i fill the object library with books. I want send the object library from MainActivity.java
to ListActivity.java
but not works with i.putExtra.
How I can do it?
Books.java
import java.util.ArrayList;
import java.util.List;
public class Books implements DataAggregate <Book>{
private List<Book> books;
public Books(){};
public List<Book> getAll() {
return this.getBooks();
}
public int size() {
return this.getBooks().size();
}
public void insert(Book element) {
this.getBooks().add(element);
}
public void delete(Book element) {
this.getBooks().remove(element);
}
private List<Book> getBooks() {
if (books==null){
books=new ArrayList<Book>();
}
return books;
}
}
MainActivity.java
Books library;
for (int i = 0; i<db_books.size(); i++){
String name = db_books.get(i).getBookName();
String author = db_books.get(i).getBookAuthor();
String epc = db_books.get(i).getBookEpc();
Integer number = db_books.get(i).getNumBooks();
Book myBook = new Book(name, author, epc, number);
library.insert(myBook);
}
Intent i = new Intent(getApplicationContext(),ListActivity.class);
i.putExtra("library",library);
startActivity(i);
ListActivity.java
Books library = extras.getString("library");
Book.java
public class Book implements Serializable {
private String bookName;
private String bookAuthor;
private String bookEpc;
private Integer numBooks;
public Book(){
}
public Book(String bname, String bauthor, String bepc, Integer nbooks){
this.bookName = bname;
this.bookAuthor = bauthor;
this.bookEpc = bepc;
this.numBooks = nbooks;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getBookAuthor() {
return bookAuthor;
}
public void setBookAuthor(String bookAuthor) {
this.bookAuthor = bookAuthor;
}
public String getBookEpc() {
return bookEpc;
}
public void setBookEpc(String bookEpc) {
this.bookEpc = bookEpc;
}
public Integer getNumBooks() {
return numBooks;
}
public void setNumBooks(Integer numBooks) {
this.numBooks = numBooks;
}
public void prettyPrint(){
Log.d("Book:", this.bookName+" "+this.bookAuthor+" "+this.bookEpc+" "+this.numBooks.toString());
}
}