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());
    }
}
 
     
     
     
     
    