Applicationクラスにいくつかのゲッターセッターを次のように作成しました。
public class myApp extends Application{
//"Global" variables
private Boolean musicEnabled = true; //Music on or off?
private Boolean soundEnabled = true; //Sound effects on or off?
@Override
public void onCreate() {
// TODO Auto-generated method stub
musicEnabled = true; //Default value for music
soundEnabled = true; //Default value for sound effects
super.onCreate();
}
//Getter and setter for musicEnabled
public Boolean getMusicOption(){
return musicEnabled; //Getter
}
public void setMusicOption(Boolean value){ //Setter
musicEnabled = value;
}
//Getter and setter for soundEnabled
public Boolean getSoundOption(){
return soundEnabled;
}
public void setMusicOptions(Boolean value){
soundEnabled = value;
}
}
次に、Activityクラスの値を次のように取得します。
myApp myAppSettings = (myApp)getApplicationContext();
musicEnabled = myAppSettings.getMusicOption();
soundEnabled = myAppSettings.getSoundOption();
これは問題ありませんが、私が理解できないのは、対応するsurfaceViewクラスからそれらにアクセスして使用する方法です。つまり、開始するクラス:
public class mySView extends SurfaceView implements
SurfaceHolder.Callback {
これまで私がこれを行うことができた唯一の方法は、次のようなメソッドを作成して、それらをサーフェスビュークラスに渡すことです。
public void initialise(Boolean Sound, Boolean Music){
}
そして、これらを私のActivityクラスから次のように渡します。
myView.initialise(musicEnabled, soundEnabled).
これは機能しますが、少し面倒なようです。つまり、「myView」クラスのセッターを使用してこれらの値を設定する必要があるので、とにかく自分から直接アクセスできます。 'myView'クラスまたはActivityクラスからこれを行う必要がありますか?
皆さんありがとう