Прежде всего: я искал свой вопрос в StackOverflow.
Android - Использование общих настроек в отдельном классе?
И я получаю нулевое ожидание.
Я делаю простую 2D-игру для платформы Android.Я должен установить только одно значение уровня для создания этой игры.Для создания моей игры;Я создал 3 вида деятельности.Первая деятельность;Займет номер уровня и перейдет ко второму (детская площадка).После этого;Если игра пройдена, вторая активность переходит к третьей.И когда пользователь нажимает на кнопку уровень будет вверх (+1).Номер уровня всегда на 1 или 1 больше, чем.Я использовал Shared Preference для сохранения своего значения, но я не работал.Как я могу это сделать?
Вот мои коды:
public class shared_level {
int level = 1;
private static Context context;
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public final static String PREFS_NAME = "Level_preference_name";
public static void setInt( String key, int level) {
SharedPreferences sharedPref = context.getSharedPreferences(PREFS_NAME,0);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(key, level);
editor.apply();
}
public static int getInt(String key) {
SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, 0);
return prefs.getInt(key, 0 );
}
}
Первая активность:
final shared_level shared_level =new shared_level();
Toast.makeText(this, "" + shared_level.getLevel(), Toast.LENGTH_SHORT).show();
pass_to_second.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent git = new Intent(getApplicationContext(), second.class);
git.putExtra("level" ,String.valueOf(shared_level.getLevel()) );
startActivity(git);
MainActivity.this.finish();
}
});
}
Вторая активность:
Bundle extras = getIntent().getExtras();
final String value = extras.getString("level");
Toast.makeText(this, "Level is : " + " " + value, Toast.LENGTH_SHORT).show();
sayı.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent git = new Intent(getApplicationContext(), third.class);
git.putExtra("level", String.valueOf(value));
startActivity(git);
second.this.finish();
}
});
Третье действие кнопки идет первым:
Bundle extras = getIntent().getExtras();
final String value = extras.getString("level");
final shared_level shared_level =new shared_level();
int new_level =Integer.valueOf(value) + 1;
shared_level.setLevel(new_level);
Toast.makeText(this, "" + shared_level.getLevel(), Toast.LENGTH_SHORT).show();
sayım.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
third.this.finish();
}
});