【发布时间】:2011-04-23 20:32:41
【问题描述】:
我为我的 Android 项目创建了一个名为“声音”的自定义类,我希望能够从我的活动中调用它。我的课内容如下:
package com.mypackage;
import java.util.HashMap;
import android.content.Context;
import android.media.SoundPool;
public class Sounds {
private static boolean sound = true;
private static final int FLIP_SOUND = 1;
private static Context context;
private static SoundPool soundPool;
private static HashMap<Integer, Integer> soundPoolMap;
public static void initSounds() {
soundPoolMap.put(FLIP_SOUND, soundPool.load(context, R.raw.flip, 1));
}
public static void playFlip() {
soundPool.play(soundPoolMap.get(FLIP_SOUND), 1, 1, 1, 0, 1);
}
public static void setSound(Boolean onOff) {
sound = onOff;
}
}
在我的主 Activity 类中,我尝试导入该类,创建它的一个实例,但我想我只是不明白它是如何完成的。有人能指出我正确的方向吗?
【问题讨论】:
-
我的事情在短短几年内发生了怎样的变化。似乎这个问题仍然很受欢迎,人们也遇到了类似的问题,我想象中的新 Android 开发人员,就像我当时一样。我正在看这个想知道我曾经期望它如何工作。上面代码中明显的一点是上下文从未初始化(实际上也没有任何 hte 字段),该类要么需要构造函数(和非静态字段),要么需要必要的参数(例如上下文、声音池和soundPoolMap) 你在这里看到的直接传递给静态方法。否则,它们将始终为空。