当前位置: 首页 > 面试题库 >

将列表作为ParcelableArrayList传递

陆晓博
2023-03-14
问题内容

大家好,我在使用某些代码时遇到了麻烦。我正在实施包裹。基本上我有一个全局启动的项目列表

private List<Movie> mMovieList = new ArrayList<>();

我希望将其作为一个可传递的实例传递,以在旋转时保存实例状态。我实现了saveOnInstanceState方法和onCreate

public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putParcelableArrayList(MOVIE_KEY, (ArrayList< ? extends Parcelable >)mMovieList);
}

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
    if (savedInstanceState != null)
    {
        mMovieList = (List<Movie>)savedInstanceState.get(MOVIE_KEY);
    }
}

唯一的问题是它将引发错误,并且错误指向outstate.putParcelableArrayList行。

java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList

有人知道解决方法或解决方法吗?我尝试使用Google搜索,并查看其他stackoverflow答案,但找不到有效的答案。

如果有人想查看项目的完整信息,这里是GitHub的链接,上述方法尚未提交。 https://github.com/Rykuno/Flix-
Viewer


问题答案:

遗憾的是,Android并未“对界面进行编程”。如果List不是,ArrayList那么您别无选择,只能创建一个新的ArrayList。这没什么大不了的,可以通过编程来完成。

public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    ArrayList<Movie> toSave = mMovieList instanceof ArrayList ?
        (ArrayList<Movie>)mMovieList : new ArrayList<Movie>(mMovieList);
    outState.putParcelableArrayList(MOVIE_KEY, toSave);
}


 类似资料:
  • 问题内容: 我有一个,我想将其传递给声明的方法。有没有办法做到这一点? 代码看起来 事情 是这样的: 该代码显然是行不通的,因为需要不。 有没有一种方法可以将列表作为变量传递? 这是在Android App中,但我不明白为什么该解决方案不适用于Java 问题答案: 刚过去。

  • 我需要用不同对象的列表填充几个子报表。基本上,假设我有以下内容:< br >二手车子报表< br >新车子报表< br > 我用字符串形式的变量创建了一个vehicle bean类,并为其创建了getter和setter方法。然后在我的数据源中,我传入一个< code >列表 我在主报表中创建了一个字段详细信息行作为类型列表。然后,我将以下内容传递给子报表数据源表达式,new 有什么方法可以将 从

  • 我正试图添加一个新列到spark dataframe中,如下所示: 我试图将上面的列值列表作为新列传递给dataframe,并尝试对该新列执行sha2,并尝试执行varchar(64)。

  • 我正在尝试用join在多个表中创建查询,并将列表作为参数传递。我将null&empty检查放在查询字符串中。但是,我在QueryNode.GetDataType上获得了NullPointerException。下面是查询和异常。 用户、角色和shopNames是列表,而customer是字符串。我创建的查询通常只使用带有null检查的字符串,它起作用了。然而,对于列表,它错误地使用了下面的列表。任

  • 我有一个REST服务,它接收许多查询参数,其中包括字符串列表。我使用RestAssured来测试这个REST服务,但是我在将列表传递给服务时遇到了一些问题。 我的Rest服务:

  • 问题内容: 我有一个整数或字符串列表,需要将其作为Delphi DataSet的参数传递。怎么做? 这是一个例子。MyQuery类似于: 我将参数设置为列表或数组或其他内容: 它将导致此查询发送到sql服务器: 如果该解决方案也可以与字符串一起使用,则执行以下查询会更好: 变得: 我相信这是一个简单的问题,但是“ IN”并不是搜索网络的好关键字。 请回答如何在IDE中配置参数,查询以及如何传递参数