开发者

Working with objects in android

I'm a flash developer with no previous Java experience, just starting to learn android development. I'm trying to make a simple kid's flash cards app, consisting of a load of images of animals, and a load of sounds that they make.

Currently I have the images in a gallery view, storing them in an array. I also have an array of the sounds. So each image and the corresponding sound are in the s开发者_如何转开发ame position in the array, so it's easy to play the right sound for the right image.

Now I want to shuffle the cards so that they appear in a different order each time the app is started up. I managed to shuffle the arrays into a random order, but kept the images and sounds in the same positions in each array but I can feel this getting messy and I'm sure this isn't the best way to go about this problem.

If this were a flash movie, I'd use objects to link the images and sounds and stick the objects in an array. Can anyone help me with some code which would achieve the same thing for android? Bear in mind I'm a complete beginner with Java and have gotten this far with tutorials and basic concepts being the same as AS3.


I'd use objects to link the images and sounds and stick the objects in an array.

Me too. Just create a class to wrap animals and sounds:

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
}

In this case I'm using an immutable object which is convenient in this case. Then you can create an array of those animals, o better yet a list:

// 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));

The only thing you would have to "disorder" in this case is one array.


As Christian said you can of course use class in your Android application.

But, since mobile devices haven't huge processing capabilities like desktops or laptops -yet-, I advice you to read the articles below before running your OOP habits ;)

Object Creation

Getters/Setters? Not here!

For items above and more...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜