小编Hon*_*ong的帖子

通用列表数组

我正在使用Generic和数组,看起来下面的代码编译得很好,

ArrayList<Key> a = new ArrayList<Key>();
Run Code Online (Sandbox Code Playgroud)

但是编译器抱怨这个,

ArrayList<Key>[] a = new ArrayList<Key>[10];
Run Code Online (Sandbox Code Playgroud)

通过阅读stackoverflow中的帖子,我有点明白,这是由于类型擦除,我可以通过使用,修复它,

ArrayList<Key>[] a = (ArrayList<Key> []) new ArrayList[10];
Run Code Online (Sandbox Code Playgroud)

或列表清单

ArrayList<ArrayList<Key>> b = new ArrayList<ArrayList<Key>>();
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚幕后的原因.特别是,为什么第二个是非法的,因为第一个是非常好的.为什么编译器不会抱怨列表列表.

java generics

31
推荐指数
2
解决办法
2万
查看次数

如何在显示前预加载片段?

在我的活动中,我有几个全屏片段,每个片段都从网络下载一些数据(使用异步任务)并将其显示给用户。这些片段一次显示一个。

更具体地说,每个片段都会从 sqlite 数据库中读取一些 url,并在将内容显示在列表中之前获取内容(如果有的话)。数据加载任务可以在OnCreate()函数中完成。

当我显示启动屏幕时,我想预加载所有片段(至少开始下载)。非常类似于viewpager 预加载其片段。

我想知道如何实现这一目标?我尝试在 Activity 的 OnCreate() 函数中初始化/创建所有片段,希望可以更早地调用片段的 OnCreate() ,但是片段的 OnCreate() 和 OnCreateView() 函数只有在片段创建后才会被调用。即将展示给用户。

android fragment

5
推荐指数
1
解决办法
5790
查看次数

标签 统计

android ×1

fragment ×1

generics ×1

java ×1