Android Studio / Как применить SharedPreferenced к моему коду - PullRequest
0 голосов
/ 24 сентября 2018

Я делаю викторину в Android Studio.Игра делится на две категории.После прохождения первой категории вторая кнопка (открытие второй категории) меняет статус с setEnable «false» на «true». Как использовать метод SharedPreferenced в моем коде, чтобы изменения, связанные со второй кнопкой (.setEnable), сохранялись после закрытия приложения.

Последний уровень первой категории

public class win extends AppCompatActivity implements View.OnClickListener{
Button win1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_winflagi);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

    win1 = (Button) findViewById(R.id.winflagi);
    win1.setOnClickListener(this);

}

@Override
public void onClick(View v) {

    if(v==win1)
    {
        Intent myIntent = new Intent(win.this, Activity2.class);
        myIntent.putExtra("isEnabled", "enabled");
        startActivity(myIntent);

    }

}
}
  • Класс, содержащий кнопки для двух категорий ...
  • button3 открывает первую категорию
  • entrycity открывает вторую категорию

    public class Activity2 extends AppCompatActivity implements View.OnClickListener{
    Button button3;
    Button entrycity;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    
    setContentView(R.layout.activity_2);
    
    button3 = (Button) findViewById(R.id.button3);
    button3.setOnClickListener(this);
    
    entrycity = (Button) findViewById(R.id.entrycity);
    entrycity.setOnClickListener(this);
    
    }
    
    @Override
    public void onClick(final View v) {
    final MediaPlayer mp = MediaPlayer.create(this, R.raw.menu);
    if (v == button3) {
    
        startActivity(new Intent(Activity2.this, flagi1.class));
        Bungee.zoom(this);
        mp.start();
    
    }
    
    if (v== entrycity){
    
        Intent intent=getIntent();
        String isEnabled = intent.getStringExtra("isEnabled");
        if(isEnabled==null||isEnabled.equals("disabled")){
            entrycity.setEnabled(false);
        }
        else{
            entrycity.setEnabled(true);
            startActivity(new Intent(this, cities1.class));
        }
        }
    
    }
    
    }
    

1 Ответ

0 голосов
/ 24 сентября 2018

Установите логическое предпочтение при включении кнопки.

else{
     entrycity.setEnabled(true);
     getSharedPreferences("MY_PREF", MODE_PRIVATE).edit().putBoolean("isEnabled",true).apply();
     startActivity(new Intent(this, cities1.class));
    }

и в вашем onCreate установите включенный статус кнопки на основе предпочтения:

entrycity.setEnabled(getSharedPreferences("MY_PREF", MODE_PRIVATE).getBoolean("isEnabled",false));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...