Ho creato una classe personalizzata per il mio progetto Android chiamato "Suoni". Voglio essere in grado di chiamarlo dalla mia attività. Il contenuto della mia classe sono i seguenti:Importare la mia classe personalizzata e chiamarla come metodo?
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;
}
}
Nella mia classe di attività principale Ho provato ad importare la classe, la creazione di un'istanza di esso, ma mi sa che non sto solo capire come si fa. Qualcuno può indicarmi la direzione giusta per favore?
mio modo le cose cambiano in pochi anni. Sembra che questa domanda sia ancora popolare e che le persone abbiano problemi simili, i nuovi sviluppatori Android che immagino, proprio come lo ero io all'epoca. Sto guardando questo chiedendomi come mai mi sarei aspettato che funzionasse. La cosa ovvia nel codice sopra è che il contesto non è mai stato inizializzato (né alcuno dei campi hte in effetti), la classe richiede o un costruttore (e campi non statici), o i parametri necessari (come il contesto, il soundpool e soundPoolMap) che vedi qui passato direttamente ai metodi statici. Altrimenti, saranno sempre nulli. – Hamid