gpt4 book ai didi

java - 使用 Parcelable 传递 Arraylist,传递 null

转载 作者:行者123 更新时间:2023-12-02 13:39:17 27 4
gpt4 key购买 nike

Github:https://github.com/jjvang/PassIntentDemo

我一直在关注有关按 Intent 传递对象的教程:https://www.javacodegeeks.com/2014/01/android-tutorial-two-methods-of-passing-object-by-intent-serializableparcelable.html

我从教程中了解到,如果您只有一组这样的值,如何发送实现 Parcelable 的 Arraylist:

  public void PacelableMethod(){  
Book mBook = new Book();
mBook.setBookName("Android Developer Guide");
mBook.setAuthor("Leon");
mBook.setPublishTime(2014);
Intent mIntent = new Intent(this,ObjectTranDemo2.class);
Bundle mBundle = new Bundle();
mBundle.putParcelable(PAR_KEY, mBook);
mIntent.putExtras(mBundle);

startActivity(mIntent);
}

我已经安排了代码,以便我可以继续向 ArrayList 添加大小为 2 或更大的内容,但请注意,我传递给下一个 Activity 的 ArrayList 为 null。

我想了解是否必须以不同方式添加到 ArrayList,或者我是否只是错误地发送/捕获 Arraylist。

尝试像这样更改代码:

public void PacelableMethod(){
ArrayList<Book> words = new ArrayList<Book>();
words.add(new Book("red", "yes", 1));
words.add(new Book("mustard", "yes", 1));
Toast.makeText(this, "" + words, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this,ObjectTranDemo2.class);
intent.putExtra("Contact_list", words);
Bundle mBundle = new Bundle();
intent.putExtras(mBundle);
startActivity(intent);
}

public class ObjectTranDemo2 extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ArrayList<Book> myList = getIntent().getParcelableExtra("Contact_list");
Toast.makeText(this, "" + myList, Toast.LENGTH_SHORT).show();
}
}

请指教,谢谢!

最佳答案

我相信您需要使用 putParcelableArrayListExtra 将数组列表添加到 Intent 附加中:intent.putParcelableArrayListExtra(Contact_list", 单词)

然后用 getParcelableArrayListExtra 接收它

关于java - 使用 Parcelable 传递 Arraylist<CustomObject>,传递 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42827229/

27 4 0