Это мой первый пост здесь, так что не волнуйтесь, лол! Итак, я новичок в этом, и я работал над этим кодом в течение нескольких дней, и я не могу понять эту концепцию предпочтений. Я искал повсюду на этом сайте, и я считаю, что этот код должен хорошо работать со всей информацией, которую я просматривал на этом сайте и других. Я посмотрел на бесчисленные примеры и до сих пор не понимаю, что я делаю неправильно.
Это фрагмент моей основной деятельности, который впервые инициируется, когда пользователь запускает приложение. У меня есть другое действие в меню параметров, которое вычисляет разницу между текущей датой и выбранной пользователем датой, и я хотел бы, чтобы полученное целое число было передано в основное действие и отображало тост его значения.
public class SmokeStopperActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
public static final String PREFERENCE_FILENAME = "DaysPassed";
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
SharedPreferences preference = getSharedPreferences("DaysPassed", MODE_PRIVATE);
int diffDays = preference.getInt("daysPassed", 0);
Toast.makeText(SmokeStopperActivity.this, ("Days" + diffDays),
Toast.LENGTH_LONG).show();;
Это фрагмент моего второго упражнения, в котором вычисляется значение целого числа diffDays.
long diff = milis2 - milis1;
int diffDays = (int) (diff / (24 * 60 * 60 * 1000) + 30);
Toast.makeText(SetDate.this, (diffDays),
Toast.LENGTH_LONG).show();;
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor prefEditor1 = preference.edit();
prefEditor1.putInt("daysPassed", diffDays);
prefEditor1.commit();
У меня есть второе действие, отправляющее тост целого числа diffDays, когда пользователь нажимает кнопку в предыдущем разделе второго действия, и вычисления работают нормально. Тост во втором упражнении отображает целое число, которое я хочу. Проблема в том, что когда я использую этот код
SharedPreferences preference = getSharedPreferences("DaysPassed", MODE_PRIVATE);
int diffDays = preference.getInt("daysPassed", 0);
Toast.makeText(SmokeStopperActivity.this, ("Days" + diffDays),
Toast.LENGTH_LONG).show();;
в моем первом упражнении сила закрывается при открытии. Если я удалю этот код из первого действия, откроется приложение, которое не имеет никакого смысла для меня. Все остальные коды, которые я здесь проверил, похоже, используют этот фрагмент точно так же, как и я без проблем, поэтому я не понимаю, что я делаю неправильно. Любая помощь будет с благодарностью. У меня такое чувство, что это что-то глупое, что я продолжаю упускать из виду. Вероятно, из-за того, что часами смотрю на код, лол!