【问题标题】:Working with objects in android在 android 中处理对象
【发布时间】:2011-06-23 14:06:02
【问题描述】:

我是一名 Flash 开发人员,之前没有 Java 经验,刚开始学习 android 开发。我正在尝试制作一个简单的儿童抽认卡应用程序,其中包含大量动物的图像以及它们发出的大量声音。

目前我在画廊视图中有图像,将它们存储在一个数组中。我也有一系列的声音。所以每个图像和对应的声音在数组中的位置相同,所以很容易为正确的图像播放正确的声音。

现在我想洗牌,以便每次启动应用程序时它们以不同的顺序出现。我设法将数组随机排列,但将图像和声音保持在每个数组中的相同位置,但我能感觉到这变得混乱,我确信这不是解决这个问题的最佳方法。

如果这是一部 Flash 电影,我会使用对象来链接图像和声音,并将对象粘贴到一个数组中。任何人都可以帮助我提供一些可以为 android 实现相同目标的代码吗?请记住,我是 Java 的完全初学者,并且已经通过与 AS3 相同的教程和基本概念走到了这一步。

【问题讨论】:

  • 你能提供一些你已经拥有的示例代码吗?例如。您的图像和声音数组(它们是什么类型?)等。创建自己的 Card 类是解决此问题的正确方法,但您可能应该只使用 List 而不是数组。

标签: android object random shuffle android-gallery


【解决方案1】:

我会使用对象来链接图像和声音并将对象粘贴到数组中。

我也是。只需创建一个类来包装动物和声音:

class SomeNiceName{
    private final Bitmap animal;
    // I'm guessing the sound is in the resources
    // folder, thus you only need an integer to reference it
    private final int sound;

    public Animal(Bitmap animal, int sound){
        this.animal = animal;
        this.sound = sound;
    }

    public Bitmap getAnimal(){
        return animal;
    }// missing getter for sound
}

在这种情况下,我使用的是不可变对象,这在这种情况下很方便。然后你可以创建一个包含这些动物的数组,或者更好的列表:

// array
SomeNiceName[] array = new SomeNiceName[blah];
array[0] = new SomeNiceName(someBitmap, theSound);
// or with lists:
List<SomeNiceName> list = new ArrayList<SomeNiceName>();
list.add(new SomeNiceName(someBitmap, theSound));

在这种情况下,你唯一需要“打乱”的就是一个数组。

【讨论】:

  • 非常感谢! :) 现在开始寻找一个随机打乱我的新列表的功能! :)
【解决方案2】:

正如 Christian 所说,您当然可以在 Android 应用程序中使用类。

但是,由于移动设备还没有像台式机或笔记本电脑那样强大的处理能力,我建议您在养成 OOP 习惯之前阅读以下文章;)

Object Creation

Getters/Setters? Not here!

For items above and more...

【讨论】:

    猜你喜欢
    • 2012-12-14
    • 2014-05-05
    • 2015-12-11
    • 2012-06-06
    • 1970-01-01
    • 2017-10-26
    • 2011-09-12
    • 2017-10-29
    相关资源
    最近更新 更多