我正在为一本书开发一个应用程序,该应用程序有13个单元,每个单元包含许多练习,每个练习包含许多扫描图像(总共450张图像)。
现在我有一个主菜单 Activity 和 2 个 fragment ,fragmentA
用于在 ListView
中显示练习,fragmentB
用于显示练习的扫描图像。
我的主菜单 Activity 包含 13 个按钮,每个按钮对应每个单元,用于加载该单元的练习。
我为每个单元分别创建了练习的字符串ArrayLists
,当用户点击特定单元时将它们加载到fragmentA
中。
1) 现在如何在 ListView
中加载 fragmentB
中的图像?
TypedArrays
,或者我应该在主菜单类中创建integerArrays
(所有单元的每个练习都有1个arraylist
)?
当我在 fragmentA
的 oncreateview
中将 OnItemClick
设置为 ListView
时,它会将相同的操作分配给所有 13 个 ArrayList 的 ListView 项,即,如果我将图像分配给单元 1 的练习 1,它将将该图像分配给所有单元的练习 1。
2) 如何分别为所有单元的所有练习实现 onItemClick
?
最佳答案
开发前应考虑的一些事项:
- 在应用程序中放置 450 张图像可能会导致应用程序尺寸过大。请记住,Google Play 上 .apk 文件的大小限制是 100MB
- 在 UI 上显示如此大规模的图像可能需要大量处理能力,并可能导致 ANR 。您需要在 UI 上异步加载图像。
how do i load images in fragmentB in ListView
您可以使用ListFragment在FragmentB
要根据练习显示不同的内容,请将单击的项目的位置从 FragmentA
传递到 FragmentB
,并根据该位置,在 UI 上设置 ArrayList
中的以下项目。
在fragment中发送参数的方式。
Bundle bundle=new Bundle();
bundle.putString("position", "0");
FragmentB fragmentB=new FragmentB();
fragmentB.setArguments(bundle);
更新
您需要创建模型类来保存内容,例如
Unit.java
public class Unit {
public int unit;
public ArrayList<Exercise> exercises;
}
其中Exercise
也是一个模型类。
关于java - 如何将大量可绘制图像加载到 fragment ListView中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34704179/