java - 如何将大量可绘制图像加载到 fragment ListView中?

标签 java android listview android-fragments

我正在为一本书开发一个应用程序,该应用程序有13个单元,每个单元包含许多练习,每个练习包含许多扫描图像(总共450张图像)。

现在我有一个主菜单 Activity 和 2 个 fragment ,fragmentA 用于在 ListView 中显示练习,fragmentB 用于显示练习的扫描图像。

我的主菜单 Activity 包含 13 个按钮,每个按钮对应每个单元,用于加载该单元的练习。

我为每个单元分别创建了练习的字符串ArrayLists,当用户点击特定单元时将它们加载到fragmentA中。

1) 现在如何在 ListView 中加载 fragmentB 中的图像? TypedArrays,或者我应该在主菜单类中创建integerArrays(所有单元的每个练习都有1个arraylist)?

当我在 fragmentAoncreateview 中将 OnItemClick 设置为 ListView 时,它会将相同的操作分配给所有 13 个 ArrayList 的 ListView 项,即,如果我将图像分配给单元 1 的练习 1,它将将该图像分配给所有单元的练习 1。

2) 如何分别为所有单元的所有练习实现 onItemClick

最佳答案

开发前应考虑的一些事项:

  1. 在应用程序中放置 450 张图像可能会导致应用程序尺寸过大。请记住,Google Play 上 .apk 文件的大小限制是 100MB
  2. 在 UI 上显示如此大规模的图像可能需要大量处理能力,并可能导致 ANR 。您需要在 UI 上异步加载图像。

how do i load images in fragmentB in ListView

您可以使用ListFragmentFragmentB

要根据练习显示不同的内容,请将单击的项目的位置从 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/

相关文章:

java - 如何解决第三方 XML 架构冲突?

android - Android Google Api 在中国是否可用以及如何测试我的应用程序?

android - 将放大/缩小添加到图像的 ListView?

java - 如何在单击 ListView 项目时出现勾号并且不会消失,直到单击的下一个项目在转到另一个 Activity 时也不会消失

javascript - 如何在 ListView 上实现滑动功能(react-native)?

java - 分隔文本文件中的所有单词

java - 唯一值的对象锁定

java - SAML 2.0 支持 Java Jersey Web/REST 应用程序

尝试将日期选择器添加到布局时未找到 Android 资源异常

java - git 新手 - 了解什么是 master 分支