Я пытаюсь создать промо-код для моего приложения, когда пользователь дает правильное значение в EditText
. Я установлю логическое значение false
, и число будет сохранено в общих настройках.Но не знаю, почему значение не уменьшается, и даже если оно уменьшается, и даже если я делаю это несколько раз, только оно перемещается с 30 до 29. Поэтому я создал тестовое приложение, в котором я устанавливаю значение в onClick
что происходит, когда промо-код равен.Таким образом, дело в том, что когда пользователь открывает приложение, число уменьшается и сохраняется, когда логическое значение равно false
public class MainActivity extends AppCompatActivity {
TextView textView;
Button button, button1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
button = (Button) findViewById(R.id.button);
button1 = (Button) findViewById(R.id.button2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences prefs = getSharedPreferences("Admob", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("ShowAd", false);
editor.putLong("daycounter", 30);
editor.commit();
}
});
caller();
}
@Override
protected void onResume() {
super.onResume();
caller();
}
@Override
protected void onPause() {
super.onPause();
caller();
}
public void caller() {
SharedPreferences settings = getSharedPreferences("Admob", 0);
boolean ad_start = settings.getBoolean("ShowAd", true);
long ad = settings.getLong("daycounter", 0);
SharedPreferences prefs = getSharedPreferences("apprater", 0);
SharedPreferences.Editor editor = prefs.edit();
Log.e("toaster", "" + ad_start);
if (!ad_start) {
long ads = ad -1 ;
if (ad > 0) {
editor.putLong("daycounter", ads);
editor.putBoolean("ShowAd", true);
editor.commit();
Toast.makeText(MainActivity.this, "" + ads, Toast.LENGTH_SHORT).show();
textView.setText(ad + "R" + ad_start);
}
}
}
}
В фиктивном приложении я показываю данные в TextView
, поэтому явызов метода onResume
и onPause
, иначе я знаю, что onCreate
достаточно.Я не понимаю, что не так в алгоритме.Я не получаю никакой ошибки вообще, и в тосте я могу только уменьшить значение до 29.Я перепробовал все типы операций декремента.Любой совет будет полезен. ** Я могу сохранить данные, проблема заключается только в том, что значение lonng не сохраняется и не уменьшается <**</p>