gpt4 book ai didi

java - 如何在两个 Activity 之间传递类对象?

转载 作者:太空宇宙 更新时间:2023-11-04 12:33:09 25 4
gpt4 key购买 nike

我有一个类Books.java,它实现一个Book.java列表,并且在MainActivity.java中我用书籍填充了对象库。我想将对象库从 MainActivity.java 发送到 ListActivity.java,但不适用于 i.putExtra。 我该怎么做?

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

最佳答案

而不是

Books library = extras.getString("library");

你应该这样做

Books library = (Books) extras. getSerializableExtra("library");

关于java - 如何在两个 Activity 之间传递类对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37615650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com