Tôi đã tạo một lớp tùy chỉnh cho dự án Android của tôi được gọi là "Âm thanh" Tôi muốn có thể gọi nó từ hoạt động của mình. Nội dung của lớp học của tôi như sau:Nhập lớp tùy chỉnh của tôi và gọi phương thức của nó?
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;
}
}
Trong lớp học chính của tôi Tôi đã cố gắng nhập lớp, tạo một thể hiện của nó nhưng tôi đoán tôi không hiểu làm thế nào nó được thực hiện. Ai có thể chỉ cho tôi đi đúng hướng được không?
tôi như thế nào mọi thứ thay đổi trong vài năm ngắn ngủi. Có vẻ như câu hỏi này vẫn còn phổ biến và mọi người đang gặp phải các vấn đề tương tự, các nhà phát triển Android mới mà tôi tưởng tượng, như lúc đó. Tôi đang nhìn vào điều này tự hỏi làm thế nào tôi đã bao giờ mong đợi nó để làm việc. Điều rõ ràng trong đoạn mã trên là ngữ cảnh không bao giờ được khởi tạo (cũng không phải là bất kỳ trường nào trong thực tế), lớp hoặc yêu cầu một hàm tạo (và các trường không tĩnh) hoặc các tham số cần thiết (chẳng hạn như ngữ cảnh, soundpool và soundPoolMap) bạn thấy ở đây được truyền trực tiếp đến các phương thức tĩnh. Nếu không, chúng sẽ luôn là rỗng. – Hamid