如何访问另一个类的onCreate方法中设置的变量?

时间:2018-02-24 15:39:13

标签: java android android-fragments

我在MainActivity类的onCreate方法中定义了一个boolean switchPref。它是一个用于设置声音的变量,一个名为SettingsActivity的另一个类的公共静态变量。 switchPref的默认值默认为false。 是否有可能同一个包中的GameActivity类的onCreate方法可以在用户之后访问此布尔值。

public class MainActivity extends AppCompatActivity {
    Button btnPlay;
    public static Boolean switchPref;
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
PreferenceManager.setDefaultValues(this, R.xml.preferences, false);

        // Read settings
        SharedPreferences sharedPref =
                PreferenceManager.getDefaultSharedPreferences(this);
        Boolean switchPref = sharedPref.getBoolean
                (SettingsActivity.KEY_SOUND_SWITCH, false);
        Toast.makeText(this, switchPref.toString(), Toast.LENGTH_SHORT).show();

定义字符串值KEY_SOUND_SWITCH

的SettingsActivity
public class SettingsActivity extends AppCompatActivity {
    public static final String KEY_SOUND_SWITCH = "sound_switch";

在同一个包的另一个活动GameActivity中,我想访问onCreate方法的sharedPref,

Boolean switchPref = sharedPref.getBoolean
                    (SettingsActivity.KEY_SOUND_SWITCH, false);

并执行以下操作以确保MainActivity和GameActivity都访问相同的布尔值。 如果Main中的boolean switchPref为false,则Main和Game中的声音都被禁用。 如果Main中的boolean switchPref为true,则启用Main和Game活动中的声音。

public class GameActivity extends AppCompatActivity {
    Button btnTry;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);
        btnTry=(Button) findViewById(R.id.btnTry);
        final MediaPlayer mp01 =MediaPlayer.create(this,R.raw.black);
        btnTry.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              **if the boolean switchPref variable in MainActivity is true, then play the sound mp01** {
                mp01.start();}
            }
        });
    }
}

0 个答案:

没有答案