生のフォルダにmp3ファイルのコレクションがあります。各mp3はカテゴリに属します。そのカテゴリから、ユーザは再生する8つのmp3のうちの1つを選択することができる。例えば生ファイルを再生するメソッドを作成していますが、他のクラスからアクセスできるメソッドが必要です
: 1.mp3 2.mp3 3.mp3 4.mp3 5.mp3 6.mp3
mp3(1-3)、カテゴリスムースジャズ 一方に属しますmp3(3-6)はオルタナティブロックに属します。
各クラスで同じメソッドを繰り返しますが、主なアクティビティには、各クラスから呼び出すことができるメソッドが1つあります。
MediaPlayer mp3;
public void musicPlayer(//Here is where I want to have a variable x){
mp3 = MediaPlayer.create(this, R.raw.//Here is where variable x goes);
PhoneStateListener phoneStateListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
if (state == TelephonyManager.CALL_STATE_RINGING) {
mp3.pause();
} else if(state == TelephonyManager.CALL_STATE_IDLE) {
mp3.start();
} else if(state == TelephonyManager.CALL_STATE_OFFHOOK) {
mp3.pause();
}
super.onCallStateChanged(state, incomingNumber);
}
};
TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
if(mgr != null) {
mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}
メソッドmusicPlayerを別のクラスから呼び出すときに、変数xをインスタンス化する必要があります。
[この* Stackoverflow *](http://stackoverflow.com/questions/413898/what-does-the-static-keyword-do-in-a-class)を確認してください。しかし、これは通常、良い方法ではありません。あなたのプロジェクトがどのようにレイアウトされているかに応じて、プロジェクトの実装を目に見えるようにするために、それらをコンストラクタの引数として送る方が良いです。 –